Prolog if-elseif-else

时间:2014-12-02 04:44:49

标签: prolog

正如问题所说,那就是我想在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很新,我几乎完全无能为力。

1 个答案:

答案 0 :(得分:1)

如果 - 则 - 否则: 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').
FALSE2