Quel conteneur pour une carte d'hexagones (type wargames)? [Résolu]

Messages postés
17
Date d'inscription
jeudi 14 juin 2007
Dernière intervention
9 août 2008
- - Dernière réponse : victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Dernière intervention
17 octobre 2012
- 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.
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Dernière intervention
4 mars 2010
3
Merci
class Hexagon{...};


Hexagon *pMap[SIZE];

Merci cs_juju12 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de cs_juju12
Messages postés
17
Date d'inscription
jeudi 14 juin 2007
Dernière intervention
9 août 2008
3
Merci
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

Merci memorial76 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de memorial76
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Dernière intervention
4 mars 2010
0
Merci
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?
Commenter la réponse de cs_juju12
Messages postés
17
Date d'inscription
jeudi 14 juin 2007
Dernière intervention
9 août 2008
0
Merci
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.
Commenter la réponse de memorial76
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Dernière intervention
17 octobre 2012
0
Merci
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
Commenter la réponse de victorcoasne
Messages postés
17
Date d'inscription
jeudi 14 juin 2007
Dernière intervention
9 août 2008
0
Merci
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 ;)
Commenter la réponse de memorial76
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Dernière intervention
10 avril 2015
0
Merci
"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 !
Commenter la réponse de cs_Adeon
Messages postés
17
Date d'inscription
jeudi 14 juin 2007
Dernière intervention
9 août 2008
0
Merci
quel est l'avantage sur un tableau[5][2]?
Commenter la réponse de memorial76
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Dernière intervention
10 avril 2015
0
Merci
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 !
Commenter la réponse de cs_Adeon
Messages postés
17
Date d'inscription
jeudi 14 juin 2007
Dernière intervention
9 août 2008
0
Merci
Sauf que pointeurs et tableaux à 2 dimensions ne font pas bon ménage...
Commenter la réponse de memorial76
Messages postés
293
Date d'inscription
jeudi 21 août 2003
Dernière intervention
10 avril 2015
0
Merci
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 !
Commenter la réponse de cs_Adeon
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Dernière intervention
17 octobre 2012
0
Merci
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
Commenter la réponse de victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Dernière intervention
17 octobre 2012
0
Merci
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];
Commenter la réponse de victorcoasne
Messages postés
17
Date d'inscription
jeudi 14 juin 2007
Dernière intervention
9 août 2008
0
Merci
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.
Commenter la réponse de memorial76
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Dernière intervention
17 octobre 2012
0
Merci
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
Commenter la réponse de victorcoasne

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.