-
Problème switch c++
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.
-
Bienvenu sur le forum.
Et si tu postais un peu de code pour qu'on sache notamment comment tu as défini ton tableau (même si un std::list<T> serait plus approprié) ainsi que ton switch. On pourra surement plus t'aider.
-
Il y a des chances pour que tu initialises mal un des tableaux, car d'après ce que tu dis le switch devrait fonctionner. Bien sûr ce n'est qu'une hypothèse car sans code comme l'a dit Trunks, on ne peut rien affirmer...