所以我有一個象棋遊戲。我試圖實現一種方法,用戶可以撤消他們的最後一步。遊戲循環中的「撤消移動」
我創建的菜單選項相應的操作監聽器。動作偵聽器將遊戲的撤消布爾值設置爲true。
僞碼,我的遊戲循環:
while (!game end)
{
if (undo)
{
undo the last move
continue;
}
prompt user to input next move
user inputs move into console
model, view are updated
}
這種邏輯是行不通的。遊戲循環處理撤消的唯一時間是用戶輸入下一步棋之後。所以......基本上它只是撤銷了他們剛纔的舉動。我需要這樣做,只要用戶單擊GUI上的撤消動作,遊戲循環就會在if語句中執行這些動作。
我有一種感覺,有一個更聰明的方法來處理這個問題。
1)爲了更好地提供幫助,請發佈[MCTaRE](http://stackoverflow.com/help/mcve)(最小完整測試和可讀示例)。 2)獲取圖像的一種方法是通過熱鏈接到[本答案](http://stackoverflow.com/a/19209651/418556)中看到的圖像。 3)實際上,您可能將MCTaRE基於[健壯,可調整大小的國際象棋GUI](http://stackoverflow.com/q/21142686/418556)。它使用在「熱門鏈接圖像」問答中看到的國際象棋圖像。 –