2010-05-22 4 views
2

J'ai une grille carrée, pour un jeu au tour par tour (la grille est similaire à l'échiquier), mais les mouvements dans les jeux sont différents selon que vous avez ou non chevauché votre pion adverse.Comment stocker le chemin d'un pion de jeu dans un jeu au tour par tour?

-à-dire si vous ne l'avez pas rodé (battu l'un des adversaires pions) dans la grille la plus extérieure comme ci-dessous

alt text http://img17.imageshack.us/img17/4508/squaregrid7x7home.png

si vous avez rodées votre pion adversaire au moins une fois, vous arrivez à atteindre la maison, de cette façon.Tout joueur ayant tous ses pions atteignant "la maison" gagne d'abord.

alt text http://img249.imageshack.us/img249/318/squaregrid7x7movesimple.png

Ceux en jaune sont sûrs maisons, soit à la fois le pion de l'adversaire et le pion du joueur obtiennent de rester dans la même grille, ce n'est pas considéré comme clapotis (l'adversaire) .Le pion rodée retournera à son point de départ.

Maintenant, la question est, quelle est la manière efficace de stocker les chemins pour tous les pions. Nous aurons 4 pions pour le joueur et 4 pions adversaires.

Y a-t-il un motif pour stocker de telles informations statiques, d'une manière élégante?

Merci pour votre temps

+0

Les pions se déplacent-ils toujours sur un chemin défini autour du plateau de jeu? Est-ce que chacun des espaces est numéroté séquentiellement du début à la fin (même si le numéro n'est pas affiché à l'écran, cela pourrait être dans la structure de données)? En regardant l'exemple ci-dessus, si vous venez de stocker la liste des espaces numérotés (par ex. 45,48,6,0, ...), le pion semblerait se déplacer arbitrairement au lieu de viser un but. Si les espaces sont numérotés séquentiellement, il est facile de déterminer si un pion a chevauché (rattrapé) l'autre, puisque la position la plus récente du lanceur sera plus élevée que la position la plus récente du joueur. –

+0

Oui, les pions se déplacent toujours dans le chemin défini. Les espaces sont numérotés en interne, nous devons garder une trace des positions de pions car, seulement si le pion adverse est rodé, le pion entre dans la boucle intérieure (36,38 ..) – panzerschreck

Répondre

2

Un List devrait fonctionner parfaitement. Cela me semble assez élégant.

S'il y a un besoin général de performance; par exemple. vous mettez en œuvre un lecteur automatique qui a besoin d'explorer un arbre énorme de mouvements alternatifs, vous pourriez envisager quelque chose d'autre. Mais les exigences de la structure de données seront motivées par votre algorithme de jeu, et nous ne pouvons pas le prévoir.

+0

J'aurais besoin de l'adversaire piloté par de l'IA, Décider du prochain mouvement. – panzerschreck

Questions connexes