Bonjour, je suis nouveau sur le forum.
Je vais essayer d'être le plus clair possible.
Je suis en train d'apprendre le c++ et je programme en ce moment le jeu du "Milles Bornes" avec la SDL.
Voila comment j'ai procédé :
J'initialise les 110 cartes du jeu dans un tableau[110] avec des numéro de 1 à 19 car il y a 19 types de cartes différentes.
J'initialise les 8 cartes de la main du joueur aléatoirement à partir du grand tableau précédent dans un second tableau[9].
Chaque fois que je séléctionne une carte du jeu : je récupère les coordonnées du click, puis une fonction me renvoie un nombre (=indice) qui correspond à la place de la carte dans la main du joueur.
Les tests (tout marche bien à ce niveau) s'enchainent puis j'arrive au cas ou je peux jouer la carte :
A ce moment, j'effectue un switch à partir du tableau des cartes de la main du joueur et avec l'indice que j'ai récupéré. Donc grace à l'indice je vais renvoyer un type de carte (de 1 à 19) et blitter cette carte pendant que je la change dans la main du joueur.
Mais là se pose mon problème :
Soit carte[9] le tableau représentant les types de carte que possède le joueur.
Soit save = l'indice de la carte séléctionnée et que l'on veut jouer.
Et bien switch(carte[save]) devrait renvoyer une valeur de 1 à 19 non?
Et bien non il me renvoie des valeurs étranges et donc rien n'est blitté dans le jeu.
Par contre : si je tape : switch(1), là est bien désignée la carte de type 1.
Alors : Est ce que les valeurs comprises dans mon tableau sont en vérité des adresses mémoires et non des chiffres comme je le pensais?
Est-ce une histoire de pointeur? (je n'en utilise pas.. je ne sais pas comment m'y prendre)..
Si quelqu'un comprend mon problème, sa réponse sera la bienenue.
Bien cordialement.
Partager