推箱子 - 支援undo/redo (
Capx)
- 方向鍵上下左右或拖曳上下左右移動角色(黑磚)
- 角色可以嘗試推動箱子, 當箱子(黃磚)被推動的方向上沒有其他箱子時, 此箱可以被推後.
- 按undo回到上一步, redo到下一步. 角色與箱子都會被回復.
這是
推箱子加上
上一步/下一步功能.
概念:
之前
上一步/下一步的case裡, 只記錄一個棋的移動, "一步"的紀錄內容是棋的起終點位置.
然而在
推箱子的case裡,"一步"有可能會移動超過一個棋, 角色與箱子可以同時移動. 所以
- 首先要界定"一步"的開始與結束時機.
- 再來, "一步"紀錄的是命令佇列, 直接保存undo/redo時要執行的命令.