为什么Probe没有执行?这不是整个程序,但应该是足够的代码来找到答案。是的,我已经在Stack Overflow上搜索了答案,但对Prolog没什么帮助。它是扫雷游戏的一部分。
play :-
play(0).
play(M) :-
N is M + 1,
Suf <- N,
display_board(visible), nl,
format("Your ~d~a move~n", [N,Suf]),
retrieve('Coordinates? ', [A,B]),
format("DEBUG: probing at coordinates [~d,~d]~n", [A, B]),
!, probe(A,B),
play(N).
probe(X, Y) :-
write("enter probe"),
located_at(Who, X, Y, C),
C = 'b',
write('should probe '),
write('at ['),
write(X), write(','), write(Y), write(']'), nl.
:- style_check(+singleton).
答案 0 :(得分:1)
让我们退一步,首先尝试找出:为什么程序甚至编译?
在咨询您发布的程序时,我得到:
ERROR: file.pl:6:6: Syntax error: Operator expected
这句话说:
Suf <- N
这不是有效的Prolog语法。
因此,我建议先解决这个问题。
事实上,我进一步得到:
Warning: file.pl:14: Singleton variables: [Who]
这也不是一个好兆头。但是ERROR
更严重,阻止了整个条款的编译。