Две кучи камней. В первой 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.