プレイヤーと列を数えることで、ゲーム内の偶数/奇数プレイヤーと偶数/奇数列をチェックしようとしています。ある時点で、変数を正しくインスタンス化していないようです。これが私がゲームを呼び出す方法です:
playGame(Game):-
countPlayers(Game,TotalPlayers),
colSize(Game,TotalCols),
checkEvens(TotalPlayers,TotalCols);
checkOdds(TotalPlayers,TotalCols).
問題は、TotalPlayers と TotalCols が正しく割り当てられていないことにあると思います。
他の質問を見てみましたが、問題は違うようです。私はプロローグが初めてで、どこかで些細な間違いを犯している可能性があります。
いくつかのトレースの後、奇数/偶数の組み合わせが入力であるときにエラーが発生しているようです。2 つの偶数または 2 つの奇数を入力すると、プログラムは期待どおりに動作します。1つの奇数と1つの偶数の入力が与えられると、壊れます。
完全なエラー:
ERROR: Arguments are not sufficiently instantiated
ERROR: In:
ERROR: [11] 1 is _34862 mod 2
ERROR: [10] checkOdds(_34894,_34896)