In einem Spiel im Jahr 2048 können Spielsteine nur mit anderen gleichwertigen Spielsteinen zusammengeführt werden in die gleiche Richtung wie die Bewegung des Spielers. Das bedeutet, dass Spielsteine in entgegengesetzter Richtung zur Eingaberichtung des Spielers gescannt werden müssen.
Um dieses Problem zu beheben, scannen wir die Spielsteine entgegen der Bewegungsrichtung des Spielers. Dadurch wird sichergestellt, dass Kacheln nur dann zusammengeführt werden, wenn sie benachbart sind und in der Bewegungsrichtung liegen. Wenn sich der Spieler beispielsweise nach unten bewegt, scannen wir von der unteren Reihe zur oberen Reihe und verschmelzen dabei die Kacheln.
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
Um die Codeeffizienz zu verbessern, können wir Eliminieren Sie unnötige verschachtelte Schleifen, indem Sie eine einzelne Schleife verwenden und in die Eingaberichtung des Spielers verzweigen.
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 ...] } } }
Dieser Code macht separate Schleifen für jede Richtung überflüssig und vereinfacht den Ablauf.
Das obige ist der detaillierte Inhalt vonWie stellt man in einem 2048-Spiel die richtige Bewegung der Spielsteine sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!