Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <ctime>
- #include <random>
- #include <algorithm>
- using namespace std;
- enum KolorKarty {
- KIER,
- KARO,
- TREFL,
- PIK
- };
- enum WartoscKarty
- {
- AS = 1,
- DWOJKA = 2,
- TROJKA = 3,
- CZWORKA = 4,
- PIATKA = 5,
- SZOSTKA = 6,
- SIODEMKA = 7,
- OSEMKA = 8,
- DZIEWIATKA = 9,
- DZIESIATKA = 10,
- WALET = 11,
- DAMA = 12,
- KROL = 13
- };
- string WyswietlWartoscKarty(WartoscKarty wartosc)
- {
- if(wartosc == AS) return "A";
- if((int)wartosc > 1 && (int)wartosc < 11) return to_string(wartosc);
- if(wartosc == WALET) return "W";
- if(wartosc == DAMA) return "D";
- if(wartosc == KROL) return "K";
- }
- string WyswietlKolorKarty(KolorKarty kolor)
- {
- if(kolor == PIK) return "♠️";
- if(kolor == KARO) return "♦️";
- if(kolor == TREFL) return "♣️";
- if(kolor == KIER) return "♥️";
- }
- class Karta {
- public:
- KolorKarty kolor;
- WartoscKarty wartosc;
- bool odslonieta;
- Karta(WartoscKarty _wartosc, KolorKarty _kolor)
- {
- kolor = _kolor;
- wartosc = _wartosc;
- odslonieta = false;
- }
- void Wyswietl()
- {
- cout << WyswietlWartoscKarty(wartosc) << WyswietlKolorKarty(kolor) << endl;
- }
- bool odslon_karte()
- {
- odslonieta = true;
- }
- };
- ostream& operator<<(ostream& os, const Karta& karta)
- {
- if(karta.odslonieta)
- {
- string tekst = "";
- tekst += (karta.wartosc != DZIESIATKA) ? " " : "";
- tekst += WyswietlWartoscKarty(karta.wartosc) + WyswietlKolorKarty(karta.kolor);
- return os << tekst;
- }
- else
- {
- return os << " 🂠 ";
- }
- }
- int main()
- {
- vector <Karta> talia;
- KolorKarty kolory[] = {KARO, PIK, KIER, TREFL};
- for(int i = 0; i < 4; i++)
- {
- for(int j = 1; j <= 13; j++)
- {
- talia.push_back(Karta((WartoscKarty)j, kolory[i]));
- }
- }
- shuffle(talia.begin(), talia.end(), default_random_engine(static_cast<unsigned>(time(nullptr))));
- talia[14].odslon_karte();
- talia[38].odslon_karte();
- talia[51].odslon_karte();
- for(int i = 0; i < talia.size(); i++)
- {
- cout << talia[i] << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement