Quel conteneur pour une carte d'hexagones (type wargames)?

Résolu
memorial76 Messages postés 17 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 9 août 2008 - 3 août 2008 à 18:57
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 - 9 août 2008 à 21:15
bonjour,

je cherche à faire une carte de type wargames avec des hexagones (bien sûr). La solution que j'envisage est de créer une classe pour l'hexagone en lui même et une autre basée sur un conteneur me permettant de stocker l'ensemble des hexagones de la carte. Or je me demande quel serait pour vous le conteneur le plus approprié?
Merci d'avance.

15 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
4 août 2008 à 19:25
class Hexagon{...};


Hexagon *pMap[SIZE];
3
memorial76 Messages postés 17 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 9 août 2008
6 août 2008 à 19:57
Alors, pour info, je vais m'orienter vers cette solution:
Je crée mes objets de type hexagone, et je les stock bien dans un tableau à 2 dimensions, mais pour gagner de la place (en suivant les conseils avisés du père ;) ) je vais en fait stocker uniquement des pointeurs vers ces objets.
Voilà, en vous remerciant de votre intérêt,
Surement à bientôt
3
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
4 août 2008 à 19:27
houla n'importe quoi...
ce serait plutôt Hexagon pMap[SIZE];

bref tout ça pour dire, pourquoi pas un simple tableau? Ta carte ne varie pas dans le temps je suppose, donc pas besoin d'enlever et rajouter des éléments?
0
memorial76 Messages postés 17 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 9 août 2008
4 août 2008 à 19:34
Merci pour ta réponse, cependant, j'avais déjà envisagé le tableau et en fait, j'aimerai bien pouvoir manipuler un conteneur dynamique. Mais, je cherche à relier l'hexagone (objet) à ses coordonnées dans la carte. Le tableau aurai été parfait pour une carte type damier mais là...
En tout cas merci pour ton point de vue, je n'ai que très peu d'expérience en prog (et en plus je fait ça en autodidacte sur mon temps libre) et tout avis m'est très précieux.
Pour en revenir à mon projet, j'aimerai pouvoir accéder rapidement à n'importe quel hexagone en partant de sa coordonnée et pouvoir en ajouter au fur et à mesure.
Merci encore.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
5 août 2008 à 01:14
Bonjour,

Je pense qu'utiliser les dessins GDI Windows est la meilleure solution même si elle est très fastidieuse.

Bonne prog,
@++

Le créateur du site http://victorlogiciels.com
0
memorial76 Messages postés 17 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 9 août 2008
5 août 2008 à 08:02
Merci mais je n'en suis pas encore au stade de l'interface graphique. Pour l'instant c'est les objets en eux même qui m'intéressent ;)
0
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
5 août 2008 à 19:59
"j'aimerai pouvoir accéder rapidement à n'importe quel hexagone en partant de sa coordonnée"

avec 1 tableau tu peu quand meme avoir direct la coordonnée de la case et inversement

si ton damier fait 5*5

tu créé un tableau : case[25]

pour avoir la coordonné X de la case[Z] : X =  Z%5

pour avoir la coordonné Y de la case[Z] : Y =  (int)(Z/5)

pour avoir la case concerné quand on est aux coordonnées X,Y : Z = X + Y*5

______________________
Adeon, programmeur de jeux sur directX 9 (http://theolith.com) a votre service !
0
memorial76 Messages postés 17 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 9 août 2008
5 août 2008 à 21:10
quel est l'avantage sur un tableau[5][2]?
0
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
5 août 2008 à 21:32
Heuu lol c vrai tu peu utiliser un tableau 2 dimension ^^ sur le coup je n'y ai pas pensé. Je pense que ca ne change rien. Pour moi c vrai que je fais svt mes plateaux avec des tableau a 1 dimension en utilisant ma methode. J'ai pris cette habitude mais d'apres mes lointains souvenirs c'est parceke j'avais été confronté a des problèmes avec les tableau 2d... Peut etre que c'etait des probleme mineur que je serai réparer maintenant... jme souviens plus ce que c'etait...
______________________
Adeon, programmeur de jeux sur directX 9 (http://theolith.com) a votre service !
0
memorial76 Messages postés 17 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 9 août 2008
6 août 2008 à 21:31
Sauf que pointeurs et tableaux à 2 dimensions ne font pas bon ménage...
0
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
6 août 2008 à 22:47
Voila ! je savais bien qu'il y avait une histoire comme ca! C'est pour ca que je travail uniquement avec des tableau 1D avec ma methode que j'ai dite plus haut.

______________________
Adeon, programmeur de jeux sur directX 9 (http://gorygems.com/2.html) a votre service !
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
8 août 2008 à 23:54
Bonjour,

"Sauf que pointeurs et tableaux à 2 dimensions ne font pas bon ménage..."
C'est que tu ne sais pas utiliser les pointeurs.

Regarde un double pointeur fait bon ménage avec un tabeau de char 2D :
char** Pointeur;
Pointeur = new char[Nb];
for (int i=0;i<Nb;i++)
   Pointeur[i]=new char[Len];


Allez @++ et Bonne prog,

Victorc
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
8 août 2008 à 23:55
Rectification (si un admin peut corriger mon post du dessus et supprimer celui là) :
char** Pointeur;
Pointeur = new char*[Nb];
for (int i=0;i<Nb;i++)
   Pointeur[i]=new char[Len];
0
memorial76 Messages postés 17 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 9 août 2008
9 août 2008 à 08:14
En fait, j'avais bien déclaré un tableau 2d de pointeurs, mais, pour une raison dont je ne me souviens déjà plus, j'ai du le faire dans l'espace global et non en statique. Toujours est-il que ça marche.
Merci quand même.
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
9 août 2008 à 21:15
Bonjour,

De rien et n'oublie pas de cochez les réponses qui t'ont aidées ;)

Bonne journée et bonne prog,
@++

Victorhttp://www.victorlogiciels.com
0
Rejoignez-nous