2048 遊戲的正確圖塊移動
在 2048 遊戲中,圖塊按照玩家輸入的方向移動。這對正確實現圖塊移動提出了挑戰。
合併問題
目前的實作嘗試將圖塊從左上角移動到右下角,無論玩家的移動方向。然而,在 2048 年,圖塊僅在向同一方向移動時才會合併。
考慮以下場景:
[2][2][4][0] [0][0][2][2] [0][0][4][0] [0][0][0][0]
如果玩家按下,程式碼將合併2 和4在底行,結果是:
[0][0][0][4] [0][0][0][0] [0][0][4][0] [0][0][0][0]
但是,如果我們以相反的方向(從下到上)合併:
[0][0][0][0] [0][0][0][0] [0][4][4][0] [0][0][0][0]
我們正確地獲得了所需的棋盤
解決方案
要解決此問題,請沿著玩家移動的相反方向掃描圖塊。這可確保圖塊僅在所需方向合併。
程式碼最佳化
提供的程式碼包含每個移動方向的重複程式碼。這可以透過使用單一循環迭代所有圖塊和 switch 語句來根據輸入方向確定適當的操作來優化。
以上是2048遊戲中如何確保棋子的正確移動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!