我在序言中有一个简单的谓词,当 MaxScore > 0 时,它给出是,否则为否。因此,如果 MaxScore 为 0,那么显然结果为否。但这不会发生。仔细看看这个:
或对应代码:
aiPlay(PlayerNum, Board, Pos, BotType) :-
aiTryAll(Board, PlayerNum, ScoreList, 0),
scoreListGetPos(ScoreList, 1, Pos, MaxScore),
write('MaxScore: '), write(MaxScore), nl,
MaxScore > 0.
以及相应的输出:
| ? myQuery(Pos).
MaxScore: 0
MaxScore: 0
MaxScore: 1
Pos = 6 ?
yes
| ?
我快疯了。有人知道发生了什么吗?