isotonicq

Karty Pułapki

Mar 22nd, 2016
138
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Dawid Grzeszuk informatyka stacjonarne grupa 3a
  2.  
  3. #include <iostream>
  4. #include <string>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. class gracz
  10. {
  11.     friend class talia;
  12. private:
  13.     string imie;
  14.     int figury[8];
  15.     int kolory[8];
  16. public:
  17.     void wpisywanie_imie(string wartosc)
  18.     {
  19.         this->imie = wartosc;
  20.     }
  21.     string wypisywanie_imie()
  22.     {
  23.         return imie;
  24.     }
  25. };
  26.  
  27. class karta
  28. {
  29. private:
  30.     int id;
  31.     int figura;
  32.     int kolor;
  33. public:
  34.     void wpisywanie_wartosci(int a, int b, int c)
  35.     {
  36.         this->id = a;
  37.         this->figura = b;
  38.         this->kolor = c;
  39.     }
  40.     int zwroc_id()
  41.     {
  42.         return id;
  43.     }
  44.     int zwroc_figura()
  45.     {
  46.         return figura;
  47.     }
  48.     int zwroc_kolor()
  49.     {
  50.         return kolor;
  51.     }
  52. };
  53.  
  54. class talia
  55. {
  56.     friend class gracz;
  57.     friend class karta;
  58.     friend class gra;
  59.  
  60. private:
  61.     int ilosc_graczy;
  62.  
  63. public:
  64.    
  65.     void tasowanie_kart(karta**&tab)
  66.     {
  67.         int temp[52];
  68.         karta *temp2[52];
  69.  
  70.         for (int x = 0; x < 52; x++)
  71.         {
  72.             temp[x] = x;
  73.         }
  74.  
  75.         random_shuffle(begin(temp), end(temp));
  76.  
  77.         for (int x = 0; x < 52; x++)
  78.         {
  79.             temp2[x] = tab[x];
  80.         }
  81.  
  82.         for (int x = 0; x < 52; x++)
  83.         {
  84.             tab[x] = temp2[temp[x]];
  85.         }
  86.         cout << ("przetasowano karty") << endl;
  87.     }
  88.  
  89.     void rozdawanie_kart(gracz **&tab_graczy, karta **&tab_kart)
  90.     {
  91.         int zmienna2 = 0;
  92.  
  93.         for (int zmienna = 0; zmienna<8; zmienna++)
  94.         {
  95.             for (int x = 0; x < ilosc_graczy; x++)
  96.             {
  97.                 tab_graczy[x]->figury[zmienna] = tab_kart[zmienna2]->zwroc_figura();
  98.                 tab_graczy[x]->kolory[zmienna] = tab_kart[zmienna2]->zwroc_kolor();
  99.                 zmienna2++;
  100.             }
  101.         }
  102.     }
  103.  
  104.     void wyswietlanie_kart(gracz **&tab_graczy, karta **&tab_kart)
  105.     {
  106.         string tab[13]{ "2","3","4","5","6","7","8","9","10","J","D","K","A" };
  107.         string tab2[4]{ "kier","karo","trefl","pik" };
  108.  
  109.         for (int zmienna = 0; zmienna < ilosc_graczy; zmienna++)
  110.         {
  111.             cout << endl << tab_graczy[zmienna]->imie << (": ");
  112.             for (int x = 0; x < 8; x++)
  113.             {
  114.                 cout << tab[tab_graczy[zmienna]->figury[x]] << "-" << tab2[tab_graczy[zmienna]->kolory[x]] << " ";
  115.             }
  116.         }
  117.  
  118.         cout << endl << endl << ("rozdano karty") << endl;
  119.     }
  120. };
  121.  
  122. class gra
  123. {
  124.     friend class talia;
  125. private:
  126.     gracz **lista_graczy;
  127.     karta **lista_kart;
  128.     talia dostep;
  129.     int ilosc_graczy;
  130.  
  131. public:
  132.     void ilosc_graczy_wpisz(int wartosc)
  133.     {
  134.         this->ilosc_graczy = wartosc;
  135.         dostep.ilosc_graczy = wartosc;
  136.     }
  137.  
  138.     void stworz_graczy()
  139.     {
  140.         lista_graczy = new gracz*[ilosc_graczy];
  141.         string imie;
  142.  
  143.         for (int x = 0; x < ilosc_graczy; x++)
  144.         {
  145.             gracz *nowy = new gracz;
  146.             cout << ("podaj imie ") << x + 1 << (" gracza: ");
  147.             cin >> imie;
  148.             nowy->wpisywanie_imie(imie);
  149.             lista_graczy[x] = nowy;
  150.         }
  151.  
  152.         cout << endl << ("stworzono graczy") << endl;
  153.         stworz_talie();
  154.     }
  155.  
  156.     void stworz_talie()
  157.     {
  158.         lista_kart = new karta*[52];
  159.         int y = 0;
  160.         int z = 0;
  161.  
  162.         for (int x = 0; x < 52; x++)
  163.         {
  164.             karta *nowa = new karta;
  165.             nowa->wpisywanie_wartosci(x, y, z);
  166.             lista_kart[x] = nowa;
  167.             y++;
  168.  
  169.             if (y == 13)
  170.             {
  171.                 y = 0;
  172.                 z++;
  173.             }
  174.         }
  175.         cout << ("stworzono talie") << endl;
  176.         dostep.tasowanie_kart(lista_kart);
  177.         dostep.rozdawanie_kart(lista_graczy, lista_kart);
  178.         dostep.wyswietlanie_kart(lista_graczy, lista_kart);
  179.     }
  180. };
  181.  
  182. int main()
  183. {
  184.     gra dostep;
  185.     int ilosc;
  186.  
  187.     cout << ("podaj ilosc graczy: ");
  188.     cin >> ilosc;
  189.  
  190.     dostep.ilosc_graczy_wpisz(ilosc);
  191.     dostep.stworz_graczy();
  192.  
  193.     return 0;
  194. }
  195. //Dawid Grzeszuk informatyka stacjonarne grupa 3a
RAW Paste Data