mao.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include <iostream> // std::cout
  2. #include <algorithm> // std::random_shuffle
  3. #include <vector> // std::vector
  4. #include <ctime> // std::time
  5. #include <cstdlib> // std::rand, std::srand
  6. #include <set>
  7. using namespace std;
  8. enum Color {CARREAU, COEUR, PIQUE, TREFLE};
  9. enum Rank {AS = 1, VALET = 11, DAME, ROI};
  10. struct Card
  11. {
  12. Color c; // Couleur
  13. int r; // Rang
  14. };
  15. bool operator<(const Card &a, const Card &b)
  16. {
  17. if (a.r < b.r)
  18. return true;
  19. else if (a.r == b.r)
  20. return a.c < b.c;
  21. else
  22. return false;
  23. }
  24. void disp(const vector<Card> &tas)
  25. {
  26. for (auto it(tas.begin()); it != tas.end(); it++) {
  27. cout << "C:" << it->c <<"; R:"<< it->r << endl;
  28. }
  29. }
  30. void disp(const set<Card> &jeu)
  31. {
  32. for (auto it(jeu.begin()); it != jeu.end(); it++) {
  33. cout << "C:" << it->c <<"; R:"<< it->r << endl;
  34. }
  35. }
  36. void piocher(vector<Card> &tas, set<Card> &jeu)
  37. {
  38. jeu.insert(tas.back());
  39. tas.pop_back();
  40. }
  41. /* Essaye de jouer, et sinon pioche. */
  42. void jouer(vector<Card> &pioche, vector<Card> &pile, set<Card> &jeu)
  43. {
  44. // Peut jouer la même couleur
  45. Card instCard;
  46. instCard.c = pile.back();
  47. // Essaye tous les numéros
  48. // ... find avec set
  49. // Essaye le numéro et d'autres couleurs
  50. // Pioche
  51. }
  52. int main(int argc, char const *argv[])
  53. {
  54. // Variables
  55. const int nbPlayer(2);
  56. int curPlayer(0);
  57. Card instCard;
  58. vector<Card> pioche;
  59. vector<Card> pile;
  60. for (int c(0); c < 4; c++)
  61. for (int r(AS); r < 14; r++) {
  62. instCard.c = (Color)c;
  63. instCard.r = r;
  64. pioche.push_back(instCard);
  65. }
  66. set<Card> jeu[nbPlayer];
  67. // Init
  68. random_shuffle(pioche.begin(), pioche.end());
  69. for (int k(0); k < nbPlayer; k++) {
  70. for (int c(0); c < 3; c++) {
  71. piocher(pioche, jeu[k]);
  72. }
  73. }
  74. // Fin
  75. return 0;
  76. }