Advertisement
giganciprogramowania

C++ - Lekcja 6

Sep 20th, 2023 (edited)
615
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4. using namespace std;
  5. class Game {
  6. public:
  7.     virtual void play() = 0;
  8. };
  9. class RockPaperScissors : public Game {
  10. private:
  11.     int playerChoice;
  12.     int computerChoice;
  13.     int playerWins = 0;
  14.     int computerWins = 0;
  15.     void display_choice(int choice) {
  16.         switch(choice) {
  17.             case 1: cout << "Papier"; break;
  18.             case 2: cout << "Kamień"; break;
  19.             case 3: cout << "Nożyce"; break;
  20.         }
  21.     }
  22. public:
  23.     RockPaperScissors() {
  24.         srand(time(0));
  25.     }
  26.     void get_player_choice() {
  27.         cout << "Wybierz: 1. Papier, 2. Kamień, 3. Nożyce: ";
  28.         cin >> playerChoice;
  29.     }
  30.     void play_round() {
  31.         computerChoice = rand() % 3 + 1;
  32.         get_player_choice();
  33.         cout << "Wybrałeś: ";
  34.         display_choice(playerChoice);
  35.         cout << "\nKomputer wybrał: ";
  36.         display_choice(computerChoice);
  37.         cout << endl;
  38.         if(playerChoice == computerChoice) {
  39.             cout << "Remis!" << endl;
  40.         } else if((playerChoice == 1 && computerChoice == 3) ||
  41.                   (playerChoice == 2 && computerChoice == 1) ||
  42.                   (playerChoice == 3 && computerChoice == 2)) {
  43.             cout << "Wygrałeś rundę!" << endl;
  44.             playerWins++;
  45.         } else {
  46.             cout << "Przegrałeś rundę!" << endl;
  47.             computerWins++;
  48.         }
  49.     }
  50.     void play() override {
  51.         while(playerWins < 3 && computerWins < 3) {
  52.             play_round();
  53.             cout << "Wynik: Gracz - " << playerWins << ", Komputer - " << computerWins << endl << endl;
  54.         }
  55.         if(playerWins == 3) {
  56.             cout << "Gratulacje! Wygrałeś całą grę!" << endl;
  57.         } else {
  58.             cout << "Niestety, przegrałeś całą grę." << endl;
  59.         }
  60.     }
  61. };
  62. class WarCardGame : public Game {
  63. private:
  64.     int playerCard;
  65.     int computerCard;
  66.  
  67.     void display_card(int card) {
  68.         cout << card;
  69.     }
  70.  
  71. public:
  72.     WarCardGame() {
  73.         srand(time(0));
  74.         playerCard = rand() % 10 + 1; // Losowanie karty od 1 do 10
  75.         computerCard = rand() % 10 + 1;
  76.     }
  77.  
  78.     void play() override {
  79.         cout << "Twoja karta to: ";
  80.         display_card(playerCard);
  81.         cout << "\nKarta komputera to: ";
  82.         display_card(computerCard);
  83.         cout << endl;
  84.  
  85.         if(playerCard == computerCard) {
  86.             cout << "Remis!" << endl;
  87.         } else if(playerCard > computerCard) {
  88.             cout << "Wygrałeś!" << endl;
  89.         } else {
  90.             cout << "Przegrałeś!" << endl;
  91.         }
  92.     }
  93. };
  94.  
  95. int main() {
  96.     RockPaperScissors rpsGame;
  97.     WarCardGame warGame;
  98.  
  99.     cout << "Gra Papier Kamień Nożyce:" << endl;
  100.     rpsGame.play();
  101.     cout << "\nGra karciana Wojna:" << endl;
  102.     warGame.play();
  103.  
  104.     return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement