正如问题所说,这就是我想用prolog模拟的东西。所以我在做一个游戏,下面是一些代码:
move(X):-
get_char(Y)
get_char(_),
get_char(Z),
not(OldLoc='Z'),
not(NewLoc = 'Z'),
validmove(OldLoc,NewLoc).
move(_):-
write('Thanks for playing!'), nl.
move(X):-
write('Invalid move!'), nl,
write('Try Again?'), nl,
move(X).我想要做的是,如果第一个谓词检查在not(OldLoc='Z'),not(NewLoc = 'Z'),失败,那么转到下一个谓词移动(_),它在validmove(OldLoc,NewLoc)失败,然后转到下一个移动(X)。我对prolog非常陌生,几乎完全一无所知。
发布于 2014-12-02 18:15:32
If-then-else:http://www.swi-prolog.org/pldoc/doc_for?object=send_arrow/2
另一个if-then-else:http://www.swi-prolog.org/pldoc/doc_for?object=(*-%3E)/2
示例#1:
?- test = test -> print('TRUTH') ; print('FALSE').
TRUTH示例#2:
?- test = test -> (test2 = test3 -> print('TRUTH'); print('FALSE2')); print('FALSE').
FALSE2https://stackoverflow.com/questions/27242024
复制相似问题