首頁 > 後端開發 > Golang > 主體

如何確保 2048 遊戲中的方塊正確移動?

Mary-Kate Olsen
發布: 2024-10-24 15:03:02
原創
374 人瀏覽過

How to Ensure Proper Tile Movement in a 2048 Game?

2048 遊戲的正確圖塊移動

理解問題

在2048 遊戲中,圖塊只能與其他相同值的圖塊合併與玩家移動的方向相同。這意味著必須沿著玩家輸入的相反方向掃描圖塊。

解決方案

為了解決這個問題,我們掃描與玩家移動方向相反的圖塊。這確保了圖塊僅在相鄰且沿著移動方向時才會合併。例如,如果玩家向下移動,我們從底行向頂行掃描,邊走邊合併圖塊。

0   0   2   0   |
0   0   2   2   | Player move (⬇️)
0   2   4   8   |
2   32  4   2

Scan:
[32,2] -> [32,2]
[4, 2] -> [6, 0]
[2, 8] -> [10, 0]
[2, 4] -> [0, 6]

Result:
0   0   10  0
0   0   6   2
0   0   0   0
32  2   0   0
登入後複製

程式碼最佳化

為了提高程式碼效率,我們可以透過使用單一循環並在玩家的輸入方向上分支來消除不必要的嵌套循環。

for (int i = 0; i < height; i++) {
    for (int j = 0; j < width; j++) {
        if (board[i][j] == 0) {
            continue;
        }
        switch (input) {
            case "d":
                updateBoardDown(board, i, j);
                break;
            case "u":
                updateBoardUp(board, i, j);
                break;
            [... other directions ...]
        }
    }
}
登入後複製

此程式碼消除了每個方向單獨循環的需要,並簡化了流程。

以上是如何確保 2048 遊戲中的方塊正確移動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板