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

memorial76 17 Messages postés jeudi 14 juin 2007Date d'inscription 9 août 2008 Dernière intervention - 3 août 2008 à 18:57 - Dernière réponse : victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention
- 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
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 4 août 2008 à 19:25
3
Merci
class Hexagon{...};


Hexagon *pMap[SIZE];

Merci cs_juju12 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de memorial76
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 4 août 2008 à 19:27
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
memorial76 17 Messages postés jeudi 14 juin 2007Date d'inscription 9 août 2008 Dernière intervention - 4 août 2008 à 19:34
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
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 5 août 2008 à 01:14
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
memorial76 17 Messages postés jeudi 14 juin 2007Date d'inscription 9 août 2008 Dernière intervention - 5 août 2008 à 08:02
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
cs_Adeon 293 Messages postés jeudi 21 août 2003Date d'inscription 10 avril 2015 Dernière intervention - 5 août 2008 à 19:59
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
memorial76 17 Messages postés jeudi 14 juin 2007Date d'inscription 9 août 2008 Dernière intervention - 5 août 2008 à 21:10
0
Merci
quel est l'avantage sur un tableau[5][2]?
Commenter la réponse de memorial76
cs_Adeon 293 Messages postés jeudi 21 août 2003Date d'inscription 10 avril 2015 Dernière intervention - 5 août 2008 à 21:32
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
memorial76 17 Messages postés jeudi 14 juin 2007Date d'inscription 9 août 2008 Dernière intervention - 6 août 2008 à 21:31
0
Merci
Sauf que pointeurs et tableaux à 2 dimensions ne font pas bon ménage...
Commenter la réponse de memorial76
cs_Adeon 293 Messages postés jeudi 21 août 2003Date d'inscription 10 avril 2015 Dernière intervention - 6 août 2008 à 22:47
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
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 8 août 2008 à 23:54
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
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 8 août 2008 à 23:55
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
memorial76 17 Messages postés jeudi 14 juin 2007Date d'inscription 9 août 2008 Dernière intervention - 9 août 2008 à 08:14
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
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 9 août 2008 à 21:15
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.