Решите задачу на Python. Напишите программу на языке Python, которая представляет игру ним для двух игроков

  • 16
Решите задачу на Python. Напишите программу на языке Python, которая представляет игру ним для двух игроков с ограничением на количество забираемых камней: в один ход можно взять максимум три камня. Разработайте программу с использованием "искусственного интеллекта" (ИИ), который играет против пользователя и старается выиграть. Пользователь будет указывать начальное количество камней в куче, а программа будет делать первый ход. После каждого хода пользователя и программы, программа будет сообщать, сколько камней было взято и сколько осталось в куче. В конце программы будет сообщено, кто выиграл. Пользователь будет вводить количество камней на каждом своем ходу, пока не введет разрешенное количество.
Морской_Сказочник
9
Решение этой задачи можно представить в виде программы на языке Python. Ниже приведен пример программы, которая реализует игру "ним" с использованием искусственного интеллекта:

python
import random

def make_move(stones):
# Выбор количества камней, которое возьмет программный игрок
if stones <= 3:
move = stones
else:
move = random.randint(1, 3)
return move

def play_game(stones):
print("Начальное количество камней:", stones)

while stones > 0:
# Ход программного игрока
move = make_move(stones)
stones -= move
print("Программа взяла", move, "камней.", "Осталось", stones, "камней.")

if stones <= 0:
print("Программа победила!")
break

# Ход пользователя
user_move = int(input("Ваш ход. Введите количество камней, которое вы хотите взять (1-3): "))
while user_move < 1 or user_move > 3:
user_move = int(input("Ваш ход. Введите количество камней, которое вы хотите взять (1-3): "))
stones -= user_move
print("Вы взяли", user_move, "камней.", "Осталось", stones, "камней.")

if stones <= 0:
print("Вы победили!")
break

# Начальное количество камней в куче
initial_stones = int(input("Введите начальное количество камней: "))
play_game(initial_stones)


Объяснение решения:
1. Мы определяем функцию `make_move(stones)`, которая выбирает количество камней, которое возьмет программный игрок. Если в куче остается меньше или равно 3 камней, то программа берет все оставшиеся камни. В противном случае программа выбирает случайное число от 1 до 3.
2. Мы определяем функцию `play_game(stones)`, которая реализует игру между пользователем и программным игроком. В цикле while проверяется, остались ли камни в куче. Если камней больше 0, то происходит ход программного игрока и количество камней уменьшается на взятое количество. Затем пользователь делает свой ход, вводя количество камней, которые он хочет взять. Если камней осталось 0 или менее, соответствующее сообщение выводится на экран.
3. Мы запрашиваем у пользователя начальное количество камней в куче и вызываем функцию `play_game()` со значением этой переменной.

Данная программа позволяет пользователю играть в игру "ним" против программного игрока с использованием искусственного интеллекта. Программа сама определяет количество камней, которое будет взято программным игроком. После каждого хода программа выводит информацию о количестве взятых и оставшихся камней. В конце игры программа сообщает о победе пользователя или программы.