2048 年のゲームで適切なタイルの移動を保証するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-24 15:03:02
オリジナル
375 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート