我試圖通過計算玩家和列來檢查遊戲中的偶數/奇數玩家和偶數/奇數列。在某些時候,似乎我沒有正確實例化我的變量。 這裏是我給遊戲:Prolog - 參數沒有充分實例化
playGame(Game):-
countPlayers(Game,TotalPlayers),
colSize(Game,TotalCols),
checkEvens(TotalPlayers,TotalCols);
checkOdds(TotalPlayers,TotalCols).
我認爲問題在於沒有正確分配TotalPlayers和TotalCols。
我試着看其他問題,但問題似乎有所不同。我對序言很陌生,可能在某個地方犯了一個微不足道的錯誤。
經過一些跟蹤後,似乎錯誤是由奇數/偶數組合輸入引起的。給定兩個偶數或兩個奇數的輸入,該程序的行爲如預期。給定一個奇數和一個偶數的輸入,並打破。
完整的錯誤:
ERROR: Arguments are not sufficiently instantiated
ERROR: In:
ERROR: [11] 1 is _34862 mod 2
ERROR: [10] checkOdds(_34894,_34896)
'mod'運算符要求將它的所有參數實例化。它不會在'1中解析x'是X mod 2'。你輸入了什麼查詢? – lurker
我正在通過玩家和列隊。這些被收集在columnsAndPlayers謂詞中作爲TotalPlayers和TotalCols並傳入。那麼我假設這些變量沒有被實例化? – Tanner
我並不是在尋找一般性描述。我的意思是,當你遇到錯誤時,你輸入的是什麼?而且,是的,你可以在你的錯誤信息中看到'Players'和'Cols'都沒有實例化(它們顯示爲匿名變量,_34894和_34896)。 – lurker