Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Логическая игра с предметами
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Kivikos Kivikos вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.12.2017
Unhappy Логическая игра с предметами - 13.12.2017, 17:25

Ребята, прошу вашей помощи.
Задача очень схожа с той, чтобы уже решена на форуме.
Головоломка с предметами. Число предметов в куче известно. Игра с компьютером. Из кучи можно брать за один ход любое количество предметов, заданное пользователем вручную. Кто берет предмет последним тот проиграл.
Подскажите, пожалуйста, как нужно исправить программу для выполнения задания по выбору количества предметов?
prolog Код:
predicates
game step(integer,integer)
goal game.
clauses
game:-write("Number of items in stack: "),
readint(Stack),Stack>0,!,
write("Who will be the first (0-comp; 1-player): "),
readint(Step),nl,step(Step,Stack).

step(1,0):-write("Congratulations, you win!"),!.
step(0,0):-write("Sorry, you lost!"),!.
step(0,Stack):-Stack mod 4=1,!,
   Rest=Stack-1,
   write("Computer takes 1 item"),nl,
   write("Only ",Rest," item(s) left"),nl,
   step(1,Rest).
step(0,K):-Rest = 4*(K div 4)+1,
   Rest<K,!,
   Take = K - Rest,
   Take>0,Take<4,!,
   write("Computer takes ",Take," item(s)"),nl,
   write("Only ",Rest," item(s) left"),nl,
   step(1,Rest).
step(0,K):-Rest = 4*(K div 4)-3,!,
   Take = K-Rest,
   write("Computer takes ",Take," item(s)"),nl,
   write("Only ",Rest," item(s) left"),nl,
   step(1,Rest).
step(1,K):-write("How many items you want to take:"),readint(Took),
   Rest = K-Took,!,
   Took<Rest,!,
   Took>0,Took<4,!,
   write("Only ",Rest," item(s) left"),nl,
   step(0,Rest).
Ответить с цитированием
  (#2 (permalink)) Старый
Kivikos Kivikos вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.12.2017
По умолчанию 13.12.2017, 17:38

Винитарх, код ваш, добавлены только парочка условий
Ответить с цитированием
  (#3 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 14.12.2017, 00:39

Цитата:
Сообщение от Kivikos Посмотреть сообщение
Из кучи можно брать за один ход любое количество предметов, заданное пользователем вручную.
Условие алогично. Я возьму n-1 предметов. Останется один, который возьмёт компьютер. Т.о. кто первый ходит, тот и выиграл.

Сформулируйте задачу полностью или приведите ссылку на задачу.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Логическая задача Diazo Prolog 1 29.10.2016 12:55
логическая задача Pютка Prolog 0 08.06.2015 13:24
Пойдёт ли игра на 8 windows,если игра вышла раньше 8 винды hrgota89 Любые вопросы от новичков 1 08.06.2014 23:48
Логическая задача paren92 Lisp 1 20.06.2012 11:02
логическая задача aska666 Prolog 0 22.04.2012 09:30
Логическая задачка Quikk Prolog 1 01.12.2010 18:15
Логическая задача Posthuman Prolog 17 27.11.2009 10:04
Логическая задача lifancy Prolog 3 25.01.2009 20:38
Логическая головоломка labaratoria Prolog 8 09.10.2007 23:09
Логическая задача. z556 Prolog 8 05.09.2007 13:10
Логическая игра Ним Snezhinka67 Prolog 1 25.11.2005 23:31
логическая задачка Lider Prolog 7 02.02.2005 21:10



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов