Bon, je poste ici, mais j’aurai aussi bien pu le faire dans la section énigmes, parce que je vais faire appel à vos méninges et à vos facultés mathématiques (diantre!)
Je tente d’adapter un de mes jeux dans une version on-line. Et autant avec un damier classique je m’en sortais très bien pour faire comprendre le plateau de jeu à la machine (déplacement vers la droite = colonne+1, vers le haut = ligne-1, etc…), autant avec des hexagones c’est plus compliqué.
Est-ce que quelqu’un a déjà eu l’occasion de réfléchir à la chose ? Existe t-il un moyen standard de numéroter de façon logique des hexagones, afin que ma machine si retrouve (d’une case numéro x, j’arrive à la case y si je me déplace de telle façon)? Avez vous quelques idées qui pourraient m’aider ?
Je suis sur que les amateurs m’auront compris. (j’espère.) Merci de votre aide.
Pour Mr Jack online, des coordonnées sont disponibles. Les unes correspondent aux colonnes (A, B, C,…). Les autres correspondent aux diagonales (1, 2, 3,…).
Tu peux peut-être y jeter un coup d’œil. C’est là http://mrjack.hurricangames.com/
Sur un programme que j’avais commencé à faire pour modéliser des plateaux d’Age of Steam, je gérais ça comme un bête tableau à deux dimensions, mais incliné :
Coordonnées des cases (en X les diagonales, en Y les colonnes) :
A : 2,2
B : 1,2
C : 2,3
D : 3,3
E : 3,2
F : 2,1
G : 1,1
Et du coup tes 6 directions sont (en partant de A pour atteindre les autres cases) :
-1,0
0,+1
+1,+1
+1,0
0,-1
-1,-1
Après, il faut juste faire attention pour reconnaître les bords du plateau (il faut faire une petite fonction dédiée).
Et si tu veux avoir des rangées droites plutôt que des colonnes, inverse simplement les X et les Y dans cet exemple…
Merci à vous deux de vous être penchés sur mon cas !
Dncan dit:Sur un programme que j’avais commencé à faire pour modéliser des plateaux d’Age of Steam, je gérais ça comme un bête tableau à deux dimensions, mais incliné :
Coordonnées des cases (en X les diagonales, en Y les colonnes) :
A : 2,2
B : 1,2
C : 2,3
D : 3,3
E : 3,2
F : 2,1
G : 1,1
Et du coup tes 6 directions sont (en partant de A pour atteindre les autres cases) :
-1,0
0,+1
+1,+1
+1,0
0,-1
-1,-1
Après, il faut juste faire attention pour reconnaître les bords du plateau (il faut faire une petite fonction dédiée).
Et si tu veux avoir des rangées droites plutôt que des colonnes, inverse simplement les X et les Y dans cet exemple…

Merci c’est exactement ce qu’il me fallait, en fin de compte, moyennant un peu de programmation, c’est guère plus compliqué qu’un déplacement sur damier carré !