Mouvement correct des tuiles pour un jeu 2048
Dans le jeu 2048, les tuiles se déplacent dans le sens de l'entrée du joueur. Cela présente un défi dans la mise en œuvre correcte du mouvement des tuiles.
Problème de fusion
La mise en œuvre actuelle tente de déplacer les tuiles du coin supérieur gauche vers le bas droit, quel que soit le la direction de déplacement du joueur. Cependant, en 2048, les tuiles ne fusionnent que lorsqu'elles se déplacent dans la même direction.
Considérez le scénario suivant :
[2][2][4][0] [0][0][2][2] [0][0][4][0] [0][0][0][0]
Si le joueur appuie, le code fusionnera les 2 et les 4 dans la rangée du bas, ce qui donne :
[0][0][0][4] [0][0][0][0] [0][0][4][0] [0][0][0][0]
Cependant, si on fusionne dans le sens inverse (du bas vers le haut) :
[0][0][0][0] [0][0][0][0] [0][4][4][0] [0][0][0][0]
On obtient correctement la planche souhaitée état.
Solution
Pour résoudre ce problème, scannez les tuiles dans le sens opposé au déplacement du joueur. Cela garantit que les tuiles fusionnent uniquement dans la direction souhaitée.
Optimisation du code
Le code fourni contient du code dupliqué pour chaque direction de déplacement. Cela peut être optimisé en utilisant une seule boucle pour parcourir toutes les tuiles et une instruction switch pour déterminer l'action appropriée en fonction de la direction d'entrée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!