question sur enum et classe [possible ou pas ?]

question sur enum et classe [possible ou pas ?] - C++ - Programmation

Marsh Posté le 15-07-2003 à 04:47:38    

j ai ue class deck.cpp , deck.h (jeux de carte) qui comment comme ca :
 
 

Code :
  1. #ifndef DECK_H
  2. #define DECK_H
  3. #include <stack>
  4. using namespace std;
  5. class deck
  6. {
  7. public:
  8.  //enumeration type
  9.  enum suitType {Hearts, Diamonds, Clubs, Spades};
  10.  enum rank {Ace = 1, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King};
  11.  //structure
  12.  struct card
  13.  {
  14.   suitType suit;
  15.   rank face_value;
  16.   int point_value;
  17.  };//end card struct
  18.  //constructor
  19.  deck();
  20.  //shuffle the deck
  21.  void shuffle();
  22.  //deal the top card from the deck
  23.  card deal();
  24.  //is the deck empty?
  25.  bool empty();
  26.  //refreshes the deck.  
  27.  void refresh();
  28. private:
  29.  //the deck of cards
  30.  stack <card> cardDeck;
  31. };
  32. #endif //DECK_H

 
 
 
j ai cree un petit programme simple qui utilise cette classe :
 

Code :
  1. #include <iostream>
  2. #include "deck.h"
  3. using namespace std;
  4. int main() {
  5. deck mydeck;
  6. mydeck.shuffle();
  7. deck::card x;
  8. x = mydeck.deal();
  9. cout <<"card 1 rank" <<x.face_value;
  10. cout <<"\ncard 1 cat "<<x.suit;
  11. cout <<"\ncard 2 point "<<x.point_value;
  12. }

 
 
 
 
 
 
sa me renvoie un chiffre vue que enum link un nom a une constante, est ce possible d afficher la " string" correspondant a la valeur ?
 
example au lieu d eme sortir 1 pour la face_value j aimerai voir : Hearts .


Message édité par xiluoc le 15-07-2003 à 05:13:16
Reply

Marsh Posté le 15-07-2003 à 04:47:38   

Reply

Marsh Posté le 15-07-2003 à 06:10:00    

:whistle:


Message édité par xiluoc le 15-07-2003 à 07:33:58
Reply

Marsh Posté le 15-07-2003 à 07:49:41    

non, c'est pas possible d'afficher le nom d'un enum, comme de tout autre variable.

Reply

Marsh Posté le 15-07-2003 à 08:53:56    

++Taz a écrit :

non, c'est pas possible d'afficher le nom d'un enum, comme de tout autre variable.


on est pas en php ici mossieur ici on transtype on caste pas on indirectionne pas (hug ?) comme des porcs, et on fait des vrais tableaux !

Reply

Marsh Posté le 15-07-2003 à 13:03:33    

farib a écrit :


on est pas en php ici mossieur ici on transtype on caste pas on indirectionne pas (hug ?) comme des porcs, et on fait des vrais tableaux !

:heink:

Reply

Marsh Posté le 17-07-2003 à 05:01:18    

tu numerotes tes types de 1 a n
et dans un tableau a n elements tu places le nom de tes types sous forme de string
et tu affiches cette string
C'est pas tres compliqué !
 
LeGreg

Reply

Marsh Posté le 17-07-2003 à 05:09:44    

legreg a écrit :

tu numerotes tes types de 1 a n
et dans un tableau a n elements tu places le nom de tes types sous forme de string
et tu affiches cette string
C'est pas tres compliqué !
 
LeGreg


 

Code :
  1. string cardname (deck::card x) {
  2. string a,b;
  3. switch (x.suit) {
  4. case 0 : a= "Hearts";    break;
  5. case 1 : a= "Diamonds";  break;
  6. case 2 : a= "Clubs";     break;
  7. case 3 : a= "Spades";    break;
  8. }
  9. switch (x.face_value) {
  10. case 1 : b= "Ace";       break;
  11. case 2 : b= "Two";       break;
  12. case 3 : b= "Three";     break;
  13. case 4 : b= "Four";      break;
  14. case 5 : b= "Five";      break;
  15. case 6 : b= "Six";       break;
  16. case 7 : b= "Seven";     break;
  17. case 8 : b= "Eight";     break;
  18. case 9 : b= "Nine";      break;
  19. case 10 : b= "Ten";      break;
  20. case 11 : b= "Jack";     break;
  21. case 12 : b= "Queen";    break;
  22. case 13 : b= "King";     break;
  23. }
  24. return (b+ " " + a);  //concatenate the string a and b to display the name of the card
  25. }

 
 
..  [:alarmclock119]

Reply

Marsh Posté le 17-07-2003 à 05:22:22    

mouai j'aurais prefere tout dans un tableau
en plus
 
a= "Hearts"; <-- ouch
 
mais bon question de principes  
 
LeGreg

Reply

Marsh Posté le 17-07-2003 à 06:37:16    

legreg a écrit :

mouai j'aurais prefere tout dans un tableau
en plus
 
a= "Hearts"; <-- ouch
 
mais bon question de principes  
 
LeGreg

explique je suis noob , que lest le pb ?

Reply

Marsh Posté le 17-07-2003 à 07:21:16    

Non c'est pas grave, de toute facon si c'est pour un jeu de carte tu n'en as rien a faire :D
 
LeGreg

Reply

Marsh Posté le 17-07-2003 à 07:21:16   

Reply

Marsh Posté le 17-07-2003 à 08:26:29    


$$variable, en php ca marche

Reply

Marsh Posté le 17-07-2003 à 09:50:11    

farib a écrit :


$$variable, en php ca marche


 
Ouais mais disais ça en quotant ++Taz, je comprends qu'il soit perdu :o
 
xiluoc >> c'est pas plus propre de mettre les noms des enums dans les case plutôt que de mettre leurs valeurs en int ? :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-07-2003 à 09:56:33    

antp a écrit :


 
Ouais mais disais ça en quotant ++Taz, je comprends qu'il soit perdu :o
 
xiluoc >> c'est pas plus propre de mettre les noms des enums dans les case plutôt que de mettre leurs valeurs en int ? :D


 
case "ace" :b="ace" ???
 j irai pas te contredire toute critique est bien venu, et dans qq temps je vais lacher mon code de blackjack, y aura du boulot lol

Reply

Marsh Posté le 17-07-2003 à 09:57:58    

antp a écrit :


 
Ouais mais disais ça en quotant ++Taz, je comprends qu'il soit perdu :o
 
xiluoc >> c'est pas plus propre de mettre les noms des enums dans les case plutôt que de mettre leurs valeurs en int ? :D


 
normalement c'est à ça que servent les énums
mais je crois qu'il n'a pas compris :D
 
LeGreg

Reply

Marsh Posté le 17-07-2003 à 10:00:04    

xiluoc a écrit :


 
case "ace" :b="ace" ???


 
case Ace: b = "Ace";
 
[:spamafote]


Message édité par antp le 17-07-2003 à 10:00:18

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed