Tic Tac Toe, partie 3: Annuler / Rétablir avec stockage des commandes

Tic Tac Toe Partie 0: Comparaison de Svelte et React
Tic Tac Toe Partie 1: Svelte et Canvas 2D
Tic Tac Toe Partie 2: Annuler / Rétablir sans état
Tic Tac Toe, partie 3: Annuler / Rétablir avec stockage des commandes
Tic Tac Toe Partie 4: Interaction avec le backend Flask en utilisant HTTP

Dans cette partie, nous discutons de la mise en œuvre du jeu Tic Tac Toe en utilisant le modèle de commande, avec le stockage des équipes Annuler / Rétablir au lieu de stocker les états individuels, avec un accès aléatoire à chaque étape de l'historique du jeu.


Code de démarrage

La partie précédente de l'article se terminait par le code suivant: code REPL .


Nous commentons tout le code qui produira des erreurs lors des modifications. Nous remplissons toutes les cellules du terrain de jeu avec des unités: Code sur REPL


Stockage d'état

Code RELP


Stockage d' état ajouté. Le terrain de jeu affiche désormais le contenu du référentiel d' état . Par défaut, le terrain de jeu était rempli de deux. Ajout de la sortie d'état dans le composant App .


Classe de commande

Code RELP


Nous avons ajouté la classe Command au fichier helpers.js . La classe History a été modifiée pour stocker les commandes au lieu des états.


Ici, je n'ai pas pu effectuer la mise à jour d'état correcte. Si quelqu'un sait, dites-moi, s'il vous plaît. Et, en général, est-il possible d'utiliser le stockage d' état de cette façon?


Traduction move

Code RELP


Ajout d'une interdiction de cliquer sur une cellule déjà remplie. Le constructeur de la classe Command a effectué une traduction du déplacement. Sortie d'état corrigée.


État des règles du jeu

Code RELP


Aux étapes précédentes, il y avait un doute sur l'utilisation correcte du stockage d' état séparé, il a donc été supprimé et le stockage de l'état du terrain de jeu a été transféré à la classe History - le champ d' état a été ajouté.


Accès aléatoire

Code RELP
Ajout de la sortie d'une liste d'étapes. L'accès aléatoire à n'importe quelle étape du jeu est effectué par l'exécution séquentielle des commandes Annuler ou Rétablir pour l'équipe sélectionnée.


Détermination du gagnant

Code RELP
La détermination du gagnant est terminée. Ajout d'un stockage de statut pour afficher le statut.


Conclusion

Le stockage de l'historique des mouvements à l'aide d'états est plus pratique à utiliser, mais coûteux en mémoire, car à chaque étape, une duplication de l'état entier du jeu est effectuée. Dans le cas d'applications avec une grande taille de modèle, il est préférable d'utiliser le stockage des commandes dans l'historique.


Dépôt GitHub

https://github.com/nomhoi/tic-tac-toe-part3


Installation du jeu sur l'ordinateur local:


git clone https://github.com/nomhoi/tic-tac-toe-part3.git cd tic-tac-toe-part3 npm install npm run dev 

Nous lançons le jeu dans un navigateur à l'adresse: http: // localhost: 5000 / .

Source: https://habr.com/ru/post/fr459906/


All Articles