Dagaz: Erreurs

image Le travail d'aider les noyés -
le travail des noyés eux-mêmes.

I. Ilf et E. Petrov.


Les erreurs sont des erreurs. Tout en travaillant sur le projet , je maintiens mon taux d'erreur personnel. Quelque chose est réparé très facilement, au premier démarrage, quelque chose est étroitement lié à l'architecture et empoisonne donc la vie depuis des années. Certaines erreurs se bloquent. Lorsque vous les corrigez, vous sentez que vous vivez. J'adore ces erreurs.

Écrire les mêmes jeux tout le temps ne serait pas intéressant. Heureusement, les jeux sont différents. Certains jeux sont plus différents que d'autres. Honnêtement, j'entreprends quelque chose pour eux, principalement en raison de l'unicité de leurs mécanismes de jeu. Pour moi, ces jeux sont une sorte de défi.


Hanga roa
Ce jeu brise les stéréotypes et brise les modèles. Ne vous laissez pas berner par la ressemblance superficielle aux échecs . C'est complètement différent des échecs. Le but du jeu est de mener votre « Moai » vers le bord opposé du plateau. C'est juste, en soi, Moai ne sait pas marcher sur la planche. Cette figure ne marche que «sur des cailloux» (strictement de sa propre couleur), se déplaçant vers une cellule adjacente dans l'une des huit directions (la pierre utilisée est retirée du plateau). Les étapes peuvent être répétées le plus longtemps possible.

MataToa (il ressemble à un pion sur le plateau) se déplace également d'un pas dans l'une des huit directions et peut détruire les "routes" ennemies en prenant des pierres de la couleur de quelqu'un d'autre (bien sûr, il peut également se déplacer le long de champs vides). Sinon, la «capture d'échecs» n'est pas utilisée dans le jeu, les pièces sont retirées du plateau d'une manière complètement différente. Pour retirer une pièce de la planche, il faut l'entourer de ses pierres de telle manière qu'elle ne puisse pas bouger (il est évident qu'il est impossible d'attraper MataToa de cette façon). Si vous avez réussi à entourer Moai - le jeu se termine ici. Avec Ariki , le dernier chiffre restant, les choses sont différentes.

Ariki - la figure d'un constructeur (représenté comme une tour sur la planche), qui jette ces mêmes «cailloux» sur la planche. Le mouvement est effectué comme suit: la pièce se déplace à n'importe quelle distance dans n'importe laquelle des huit directions (comme une reine d'échecs, seulement sans combat), après quoi elle tire deux "coups". Les pierres volent également à n'importe quelle distance, dans l'une des huit directions. Si vous parvenez à lapider Ariki ennemi avec des pierres, il est retiré du plateau, mais pas pour toujours. Le joueur auquel elle appartient peut la remettre sur le plateau, dans l'un des mouvements suivants, mais uniquement sur la première horizontale. C'est peut-être la mécanique d'échecs la plus étonnante que j'ai jamais vue.

Tout tourne autour de ces figures très "tournantes". Le «tir» lui-même est codé tout simplement, mais pour avoir la possibilité de «tirer» deux fois de suite, j'ai dû grimper dans le cœur . Le fait est que depuis l'époque avec Zillions , une telle séquence d'actions a été interprétée comme un mouvement composite, c'est-à-dire une séquence de mouvements partiels exécutés par une seule pièce, et un "tir" consiste, en fait, à déplacer la même pièce vers une autre position. Pas celui avec lequel le prochain coup partiel doit être effectué (deuxième "coup"). J'ai dû bricoler avec ça.

Comme je n'ai pas encore compris comment implémenter un bot pour ce jeu, je l'ai fait en mode "smart board", qui contrôle le respect des règles, mais sans l'intelligence artificielle du jeu. Cela m'a joué un tour. L'erreur ne s'est pas du tout manifestée dans le contrôle manuel des chiffres, mais elle est devenue évidente dès que j'ai commencé à faire un bot pour les Amazones .

À strictement parler, il existe un autre jeu avec des mécanismes similaires

Mais pour elle, je n'ai pas fait de bot non plus. Je pense que vous comprenez pourquoi.

Dans le cas des Amazones, j'ai trouvé une solution de contournement et je ne suis pas monté dans le cœur, mais pour Hanga Roa, cette solution n'était pas appropriée. Puisqu'il n'y avait toujours pas de bot pour le jeu, j'ai jeté cette chose dans une longue boîte (et elle a continué à me mordre de l'intérieur). Cela aurait continué comme ça si, pendant que je travaillais sur Quantum Morris , je n’étais pas tombé sur de telles saletés ici:


Le problème a été aggravé par le fait que l'erreur, apparemment, s'est manifestée en fonction des phases de la lune. Cela (ainsi que plusieurs autres cas) a clairement montré que le moment était venu de réécrire le code d'animation pour les formes en mouvement, à partir duquel le projet a presque commencé. Ne vous méprenez pas, je ne me suis pas précipité pour réécrire la vue immédiatement. Je me suis convaincu que c'était nécessaire, pendant environ un mois. Et à la fin, convaincu . Le code est devenu plus simple et plus compréhensible. En cours de route, d'autres erreurs qui me tourmentaient depuis longtemps sont devenues plus évidentes.


L'image est cliquable. Admirez comment la balle noire, après avoir terminé le parcours, devient blanche (même si cela ne devrait pas du tout le faire). Avec l'ancienne vue, elle restait noire et l'erreur n'était pas si évidente. Sur la vue, le personnage est resté noir, mais le joueur ne pouvait plus le contrôler (puisque, dans le modèle, il était blanc) et il était furieux. À proprement parler, il s'agit d'une erreur de modèle, mais de nombreuses questions s'y sont déjà accumulées (ainsi que sur l'utilitaire de conversion de code ZRF en JavaScript).

Pour de bon, tout doit y être réécrit, mais je ne suis pas encore mentalement préparé pour ça. Par conséquent, j'ai fait une autre " solution rapide " et à Fanorona , maintenant, vous pouvez jouer normalement, sans miracles. Dans " Russian Checkers ", au fait aussi. Il y avait un bug lié à la mise en œuvre de la règle de la « frappe turque », qui a été facilement corrigé de manière inattendue par cette simple correction. Je travaille donc sur les bugs. Je fais donc mieux le projet.

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


All Articles