Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Strawberry Prolog (задача с двумя кучами камней)  (Прочитано 770 раз)
0 Пользователей и 1 Гость смотрят эту тему.
grimzone
Новенький

ru
Offline Offline

« : 27-10-2016 02:18 » 

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

Ошибок и варнингов нет, но и не выводит ничего. Ни одного символа на выводе. Что может быть не так?

-----------
Saving.

Compiling the file:
C:\temp\Prolog\rocks
0 errors, 0 warnings.

No.
-----------

Код:
solve(X,Y) :-
addig(X,Y), X > 22, X=\=Y, write(X," ",Y), solve(X.Y), nl;
addig(X,Y), Y > 22, X=\=Y, write(X," ",Y), solve(X.Y), nl.

addig(X,Y) :-
summ(X,3), summ(Y,3);
summ(X,3), proz(Y,2);
proz(X,2), summ(Y,3);
proz(X,2), proz(Y,2).

summ(X,Y) :-
X is 3 + Y.

proz(X,Y) :-
X is 2 * Y.

?- solve(2,3),write(X," - ",Y),nl,fail.
Записан
grimzone
Новенький

ru
Offline Offline

« Ответ #1 : 28-10-2016 00:17 » new

Даже вот такой код ничего не выводит. Совсем ничего не понимаю.

Код:
solve(TMPX,TMPY) :-
write(TMPX," ",TMPY), nl.

?- solve(2,3).
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines