Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск выигрышной стратегии - две кучи фишек, Два игрока играют в следующую игру... 
:(
    Опции темы
Kronos0041
  Дата 1.6.2016, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.1.2016

Репутация: нет
Всего: нет



Два игрока играют в следующую игру. Перед ними лежат две кучки фишек, в первой из которых 3, а во второй - 5 фишек. У каждого игрока неограниченно много фишек. Ходят игроки по очереди. Делая очередной ход, игрок или увеличивает в какой-то кучке число фишек в 2 раза, или добавляет в какую-то кучку 2 фишки. Выигрывает тот игрок, после хода которого общее число фишек в двух кучках становится не менее 23. Выяснить, кто выигрывает при правильной игре - первый или второй игрок.

Но мне еще нужно добавить чтобы ходы игроков выводились в графическом виде. Вот моя попытка, но я думаю что это как то неправильно, как мне сделать чтобы было более наглядно?

Код

swap(1,2).
swap(2,1).

win(Winer,P,[A,B]):- A + B > 23, ! ,Winer = P.

win(Winer,P,[A,B]):-swap(P,P1), write("\nGo player"), write(P1),
A1 is A*2,win(Winer,P1,[A1,B]), write("\nbunch is: "), write(A1), write(","), write(B),
B1 is B*2,win(Winer,P1,[A,B1]), write("\nbunch is: "), write(A), write(","), write(B1),
A2 is A+2,win(Winer,P1,[A2,B]), write("\nbunch is: "), write(A2), write(","), write(B),
B2 is B+2,win(Winer,P1,[A,B2]), write("\nbunch is: "), write(A), write(","), write(B2).

win(P1,P,_):-swap(P,P1).


Тесты:
Код

?- win(1,2,[3,5]).
Go player1
Go player2
Go player1
bunch is: 24,5
Go player2
bunch is: 12,5
Go player1
Go player2
bunch is: 6,10
Go player1
Go player2
bunch is: 8,5
Go player1
Go player2
bunch is: 6,7
bunch is: 6,5
Go player2
Go player1
Go player2
bunch is: 6,10
Go player1
bunch is: 6,20
bunch is: 3,40
bunch is: 5,20
bunch is: 3,22
bunch is: 3,20
Go player1
Go player2
bunch is: 5,10
Go player1
...
true.

PM MAIL   Вверх
Google
  Дата 22.5.2019, 06:29 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.1736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.