12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #include <iostream> // std::cout
- #include <algorithm> // std::random_shuffle
- #include <vector> // std::vector
- #include <ctime> // std::time
- #include <cstdlib> // std::rand, std::srand
- #include <set>
- using namespace std;
- enum Color {CARREAU, COEUR, PIQUE, TREFLE};
- enum Rank {AS = 1, VALET = 11, DAME, ROI};
- struct Card
- {
- Color c; // Couleur
- int r; // Rang
- };
- bool operator<(const Card &a, const Card &b)
- {
- if (a.r < b.r)
- return true;
- else if (a.r == b.r)
- return a.c < b.c;
- else
- return false;
- }
- void disp(const vector<Card> &tas)
- {
- for (auto it(tas.begin()); it != tas.end(); it++) {
- cout << "C:" << it->c <<"; R:"<< it->r << endl;
- }
- }
- void disp(const set<Card> &jeu)
- {
- for (auto it(jeu.begin()); it != jeu.end(); it++) {
- cout << "C:" << it->c <<"; R:"<< it->r << endl;
- }
- }
- void piocher(vector<Card> &tas, set<Card> &jeu)
- {
- jeu.insert(tas.back());
- tas.pop_back();
- }
- /* Essaye de jouer, et sinon pioche. */
- void jouer(vector<Card> &pioche, vector<Card> &pile, set<Card> &jeu)
- {
- // Peut jouer la même couleur
- Card instCard;
- instCard.c = pile.back();
- // Essaye tous les numéros
- // ... find avec set
- // Essaye le numéro et d'autres couleurs
- // Pioche
- }
- int main(int argc, char const *argv[])
- {
- // Variables
- const int nbPlayer(2);
- int curPlayer(0);
- Card instCard;
- vector<Card> pioche;
- vector<Card> pile;
- for (int c(0); c < 4; c++)
- for (int r(AS); r < 14; r++) {
- instCard.c = (Color)c;
- instCard.r = r;
- pioche.push_back(instCard);
- }
- set<Card> jeu[nbPlayer];
- // Init
- random_shuffle(pioche.begin(), pioche.end());
- for (int k(0); k < nbPlayer; k++) {
- for (int c(0); c < 3; c++) {
- piocher(pioche, jeu[k]);
- }
- }
- // Fin
- return 0;
- }
|