Dalam permainan 2048, jubin hanya boleh bergabung dengan jubin lain yang bernilai sama dalam arah yang sama dengan pergerakan pemain. Ini bermakna jubin mesti diimbas dalam arah yang bertentangan dengan input pemain.
Untuk menangani perkara ini, kami mengimbas jubin bertentangan dengan arah pergerakan pemain. Ini memastikan bahawa jubin hanya digabungkan apabila ia bersebelahan dan ke arah pergerakan. Contohnya, jika pemain bergerak ke bawah, kami mengimbas dari baris bawah ke baris atas, menggabungkan jubin semasa kami pergi.
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
Untuk meningkatkan kecekapan kod, kami boleh hapuskan gelung bersarang yang tidak diperlukan dengan menggunakan gelung tunggal dan bercabang pada arah input pemain.
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 ...] } } }
Kod ini menghapuskan keperluan untuk gelung berasingan untuk setiap arah dan memudahkan aliran.
Atas ialah kandungan terperinci Bagaimana untuk Memastikan Pergerakan Jubin yang Betul dalam Permainan 2048?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!