Need advice

Signaler
Messages postés
2
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
9 février 2003
-
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
-
Bonjour,

je suis en train d'écrire un jeu de plateau, dans lequel les 'pions' sont appelés pièces. Je veux être capable de lister tous les coups légaux à chaque tour de jeu si le joueur le demande. J'ai donc écrit une classe qui représente la pièce, dans laquelle j'ai défini la structure suivante:
struct CELL { int x; int y; };pour représenter la position de la pièce à l'écran. Ma liste de mouvements légaux sera donc une liste de CELL (list<CELL> legalMoves). J'ai pensé à une autre approche; plutôt que de définir la structure CELL, je pourrais me servir d'un entier pour représenter les positions x et y de la pièce (partie haute position en x, et partie basse position en y). Quels seraient les avantages et les inconvénients d'une telle approche?

1 réponse

Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
bonjour,

c'est le compromis taille/vitesse

définir deux données membres prend plus de place qu'une
les compresser en une oblige à passer par du code pour les accéder individuellement

En tout cas, demande toi d'abord si des déplacements utilisent ton int (peut être qu'un short, un char, un unsigned char suffirait ?)

Attention aussi à l'alignement de tes données (souvent 8 octets par défaut : option de compilateur)

exemple : les classes suivantes occupent non pas 6 mais
class A{ char c1;char c2; int i;};//8 octets
class B{ char c1;int i; char c2;};// 12 octets