Prolog には、MaxScore >0 の場合は yes、それ以外の場合は no という単純な述語があります。したがって、MaxScore が 0 の場合、結果は明らかに No になります。しかし、これは起こりません。これをよく見てください:
または対応するコード:
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
| ?
私はこれで気が狂っています。誰が何が起こっているのか手がかりを持っていますか?