Используя пролог, могу ли я продолжить выполнение после того, как строка вернет false?
Мне нужно создать игру в крестики-нолики.Я хочу проверить состояние победы после хода каждого игрока.
checkwin возвращает true, когда есть выигрышное состояние, но false в противном случае.Проблема в том, что после того, как он вернул false, я не могу перейти к следующему ходу игрока.
Как я могу проверять его каждый ход и продолжать выполнять код, следующий за проверкой?Есть ли способ «продолжить, если ложь»?
adjustGame(PosX, PosY, Gameboard, Token) :-
update(PosX, PosY, Gameboard, Newboard, Token),
display(Newboard),
checkwin(Newboard,Token),% This is false until the game has a winner
play(Newboard,Token). % but I want to execute this line until then
checkwin([A,B,C,D,E,F,G,H,I],T) :-
same(A,B,C,T);
same(D,E,F,T);
same(G,H,I,T);
same(A,D,G,T);
same(B,E,H,T);
same(C,F,I,T);
same(A,E,I,T);
same(C,E,G,T).
same(X,X,X,X).
Спасибо!