Advertisement
Leedwon

Untitled

May 24th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.07 KB | None | 0 0
  1.  
  2. #ifndef HEADER144_H_
  3. #define HEADER144_H_
  4. #include <string>
  5. #include <iostream>
  6. #include <ctime>
  7. #include <cstdlib>
  8.  
  9. class Person
  10. {
  11. private:
  12.     std::string firstName;
  13.     std::string lastName;
  14. public:
  15.     Person(std::string & s1, std::string & s2) : firstName(s1), lastName(s2) {}
  16.     Person(const Person & p): firstName(p.firstName), lastName(p.lastName) {}
  17.     Person(const char * s1 = "brak", const char * s2 = "brak") : firstName(s1), lastName(s2) {}
  18.     virtual void Show() = 0 { std::cout << firstName << " " << lastName; }
  19.     virtual ~Person() = 0 {}
  20.     void Set() { std::cout << "Podaj imie i nazwisko: "; std::cin >> firstName; while (std::cin.get() != '\n') continue; std::cin >> lastName; while(std::cin.get() != '\n') continue; }
  21. };
  22.  
  23. class Gunslinger : virtual public Person
  24. {
  25. private:
  26.     int scratches;
  27. protected:
  28.     void Set4Show() { std::cout << "Liczba rys na rewolwerze: " << scratches << " Szybkostrzelnosc: " << Draw(4); }
  29. public:
  30.     Gunslinger(std::string & s1, std::string & s2, int scr = 0 ) : Person(s1, s2), scratches(scr) {}
  31.     Gunslinger(const Person & p, int scr = 0) : Person(p), scratches(scr) {}
  32.     Gunslinger(const char * s1 = "brak", const char * s2 = "brak", int scr = 0) : Person(s1, s2), scratches(scr) {}
  33.     void Show() { std::cout << "Imie i nazwisko rewolwerowca: "; Person::Show(); Set4Show(); }
  34.     double Draw(double n) { srand(time(NULL)); return std::rand() % n; }
  35.     void Set() { Person::Set(); std::cout << "Podaj liczbe rys na rewolwerze: "; std::cin >> scratches; }
  36. };
  37.  
  38. class Card
  39. {
  40. private:
  41.     const std::string ranks[13] {"deuce", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "jack", "queen", "king", "ace"};
  42.     const std::string suits[4]{"clubs", "diamonds", "hearts", "spades" };
  43.     int rank;
  44.     int suit;
  45. public:
  46.     Card(int r = 12, int s = 3) : rank(r), suit(s) {}
  47.     void Show() { std::cout << ranks[rank] << " of " << suits[suit]; }
  48. };
  49.  
  50. class PokerPlayer : virtual public Person
  51. {
  52. protected:
  53.     void set4Show() { std::cout << "Karta: "; Draw().Show(); }
  54. public:
  55.     PokerPlayer(std::string & s1, std::string & s2) : Person(s1, s2) {}
  56.     PokerPlayer(const Person & p) : Person(p) {}
  57.     PokerPlayer(const char * s1 = "Brak", const char * s2 = "Brak") : Person(s1, s2) {}
  58.     Card Draw() { srand(time(NULL)); return Card(rand() % 13, rand() % 4); }
  59.     void Show() { std::cout << "Imie i nazwisko pokerzysty: "; Person::Show(); set4Show(); }
  60.     void Set() { Person::Set(); }
  61. };
  62. class BadGuy : public Gunslinger, public PokerPlayer
  63. {
  64. protected:
  65.     void set4show() { Gunslinger::Set4Show(); PokerPlayer::set4Show(); }
  66. public:
  67.     BadGuy(std::string & s1, std::string & s2, int scr = 0) : Person(s1, s2), Gunslinger(s1,s2, scr), PokerPlayer(s1,s2) {}
  68.     BadGuy(const Person & p, int scr = 0) : Person(p), Gunslinger(p, scr), PokerPlayer(p) {}
  69.     BadGuy(const char * s1 = "brak", const char * s2 = "brak", int scr = 0) : Person(s1, s2), Gunslinger(s1, s2, scr), PokerPlayer(s1,s2) {}
  70.     void Gdraw() { Gunslinger::Draw(4); }
  71.     void Cdraw() { PokerPlayer::Draw(); }
  72.     void Show() { std::cout << "Imie i nazwisko badguya: "; set4Show(); }
  73.     void Set() { Gunslinger::Set(); }
  74. };
  75.  
  76. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement