Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.12.2022
Сообщений: 12
1

Игра ним для двух игроков с двумя кучами и без ограничения на количество забираемых камней

11.01.2023, 18:52. Показов 910. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Игра ним для двух игроков с двумя кучами и без ограничения на количество забираемых камней.
Напишите программу с «искусственным интеллектом» (ИИ), которая играет против пользователя и выигрывает, если может. Исходное количество камней в кучах задаёт пользователь, программа всегда ходит первой. Выигрывает забравший последний камень, и при окончании игры нужно объявить победителя.

Алгоритм игры выглядит следующим образом:
Первым делом пользователь вводит количества камней в кучах (натуральные числа, каждое на новой строке).
Затем первый ход делает программа и выводит через пробел четыре числа: из какой кучи взяты камни; сколько камней взято; сколько камней осталось в кучах, сначала в первой, затем во второй.
Затем ход делает пользователь: вводит на отдельных строках номер кучи и количество камней, которые он хочет взять.
Если ход некорректный, например, пользователь пытается взять камней больше, чем есть в куче, программа должна вывести: Некорректный ход: <куча> <кол-во камней> и ожидать нового ввода пользователя.
После каждого корректного хода игрока или ИИ нужно выводить четыре числа, как и после первого хода ИИ.
Если выигрывает игрок, то надо вывести фразу: Вы выиграли!, а если ИИ – фразу: ИИ выиграл!
Все сообщения программы должны строго соответствовать условию.

Формат ввода
Для старта игры вводятся два натуральных числа.
Пример диалога игры:

10
10
2 1 10 9
1
15
Некорректный ход: 1 15
2
10
Некорректный ход: 2 10
2
7
2 7 10 2
1 8 2 2
2
1
2 1 2 1
1 1 1 1
1
1
1 1 0 1
2 1 0 0
ИИ выиграл!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2023, 18:52
Ответы с готовыми решениями:

Игра ним для двух игроков с одной кучей и ограничением на количество забираемых камней
Игра ним для двух игроков с одной кучей и ограничением на количество забираемых камней: за один ход...

Игра ним с двумя кучами камней, начальное количество камней в кучах задаёт пользователь
Игра ним с двумя кучами камней, начальное количество камней в кучах задаёт пользователь. ...

Игра Ним с тремя кучами для одного игрока без ограничений на количество забираемых камней
Игра Ним с тремя кучами для одного игрока без ограничений на количество забираемых камней. На...

Задача Ним с тремя кучками и без ограничения на кол-во забираемых камней
Мне очень нужна помощь. Делаю задачу уже месяц... Никак не могу решить. Игра ним для двух...

5
5025 / 3371 / 1155
Регистрация: 21.03.2016
Сообщений: 8,187
11.01.2023, 18:53 2
действительно интересная.
0
736 / 618 / 151
Регистрация: 04.03.2022
Сообщений: 1,267
11.01.2023, 19:53 3
Не знаю, интересно или нет, но, кажется, была уже такая тема. Искать лень, поэтому вот:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
k = [int(input())]
k.append(int(input()))
if k[0]==k[1]==1:
    print('Вы выиграли')
else:
    while True:
        if k[0]==0 or k[1]==0:
            i = [i for i in [0,1] if k[i]>0][0]
            print(i + 1, k[i], 0, 0)
            print('ИИ выиграл')
            break
        elif k[0]==1 or k[1]==1:
            i = 1 - [i for i in [0, 1] if k[i] == 1][0]
            j = k[i] - 1
            k[i] = 1
            print(i + 1, j, k[0], k[1])
        else:
            i = [i for i in [0, 1] if k[i] > 2][0]
            j = k[i] - 2
            k[i] = 2
            print(i + 1, j, k[0], k[1])
        while True:
            i = int(input())
            j = int(input())
            if k[i - 1]>=j:
                break
            else:
                print(f'Некорректный ход: {i} {j}')
        k[i - 1] -= j
        print(i, j, k[0], k[1])
2
0 / 0 / 0
Регистрация: 24.12.2022
Сообщений: 12
11.01.2023, 21:03  [ТС] 4
Выводит: Информация о кучах не получена или введены некорректные данные
Completion status: ABNORMAL_EXIT
Term sig: null
Error code: 2

Добавлено через 1 минуту
Вы проверяли на работоспособная способность? К сожалению ошибка при выполнении программы

Добавлено через 3 минуты
Сможете исправить?)
0
736 / 618 / 151
Регистрация: 04.03.2022
Сообщений: 1,267
12.01.2023, 06:55 5
Weteyr, Естественно, проверял. У меня все работает. Как Вы вводите данные?
0
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
19234 / 10954 / 2917
Регистрация: 21.10.2017
Сообщений: 23,148
12.01.2023, 09:17 6
Цитата Сообщение от Parramon Посмотреть сообщение
кажется, была уже такая тема
Раз 20 наверно
1
12.01.2023, 09:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2023, 09:17
Помогаю со студенческими работами здесь

Задача Ним с тремя кучками и без ограничения на кол-во забираемых камней
Мне очень нужна помощь. Делаю задачу уже месяц... Никак не могу решить. Игра ним для двух...

Игра с двумя кучами камней (из ЕГЭ)
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки...

Игра Ним с двумя кучами для одного игрока
Задача: Игра Ним с двумя кучами для одного игрока без ограничений на количество забираемых камней....

Игра "Ним" с тремя кучами камней
Игра ним с тремя кучами камней, начальное количество камней в кучах задаёт пользователь. Компьютер...

Игра "Ним" с двумя кучами для одного игрока
Игра Ним с двумя кучами для одного игрока без ограничений на количество забираемых камней. На...

Игра ним для двух игроков
Игра ним для двух игроков с одной кучей и ограничением на количество забираемых камней: за один ход...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru