Advertisement
Baxram97

Untitled

Mar 10th, 2022
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. #include <ctime>
  5.  
  6. class Gallow {
  7. private:
  8.     int lives = 12;
  9.     char answer = 0;
  10.     std::string word;
  11.     std::string hiddenWord;
  12.     int succesCounter = 0;
  13.     int counter = 0;
  14.  
  15.     inline bool ifCorrect() const {
  16.         for (int i = 0; i < word.length(); i++) {
  17.             if (word[i] == answer)
  18.                 return true;
  19.         }
  20.         return false;
  21.     }
  22.  
  23. public:
  24.     Gallow() = default;
  25.  
  26.     std::string loadRandFile(std::string path) {
  27.         int numLines = 9;
  28.         std::ifstream fin(path);
  29.         int lineNum = 0;
  30.         int randLine = rand() % numLines;
  31.         while (getline(fin, word)) {
  32.             if (lineNum++ == randLine) break;
  33.         }
  34.         return word;
  35.     }
  36.  
  37.  
  38.     inline void setAnswer() {
  39.         std::cout << "Enter the letter" << std::endl;
  40.         std::cout << ">>> ";
  41.         std::cin >> answer;
  42.  
  43.         for (int i = 0; i < word.length(); i++) {
  44.             if (word[i] == answer) {
  45.                 hiddenWord[i] = answer;
  46.                 succesCounter++;
  47.             }
  48.         }
  49.  
  50.         if (succesCounter > 0) {
  51.             std::cout << "Correct letter [+]!" << std::endl;
  52.             std::cin.ignore();
  53.             system("clear");
  54.             std::cout << "Current word: ";
  55.             showHiddenWord();
  56.             std::cout << std::endl;
  57.             succesCounter = 0;
  58.  
  59.             std::cout << "Count of your lives: " << lives << std::endl;
  60.         } else {
  61.             std::cout << "Incorrect letter [-]!" << std::endl;
  62.             std::cin.ignore();
  63.             system("clear");
  64.             std::cout << "Current word: ";
  65.             showHiddenWord();
  66.             std::cout << std::endl;
  67.             lives--;
  68.  
  69.             std::cout << "Count of your lives: " << lives << std::endl;
  70.  
  71.             if (lives <= 0) {
  72.                 std::cout << "You died!" << std::endl;
  73.                 std::exit(1);
  74.             }
  75.         }
  76.     }
  77.  
  78.     inline void setWord() {
  79.         std::cout << "Enter the word" << std::endl;
  80.         std::cout << ">>> ";
  81.         loadRandFile("game.txt");
  82.         std::cin >> word;
  83.     }
  84.  
  85.     inline void showHiddenWord() {
  86.         if (!(counter > 0)) {
  87.             for (int i = 0; i < word.length(); i++) {
  88.                 hiddenWord.insert(hiddenWord.begin(), '*');
  89.             }
  90.         }
  91.         std::cout << hiddenWord << std::endl;
  92.         counter++;
  93.     }
  94.  
  95.     inline bool isWordCorrect() const {
  96.         if (hiddenWord == word)
  97.             return true;
  98.         else
  99.             return false;
  100.     }
  101.  
  102.     inline int getLifes() const { return lives; }
  103. };
  104.  
  105. int main() {
  106.     srand(time(NULL));
  107.     Gallow *gallow = new Gallow;
  108. //    gallow->loadRandFile("game.txt");
  109.     gallow->setWord();
  110.     std::cin.ignore();
  111.     system("clear");
  112.  
  113.     gallow->showHiddenWord();
  114.     while (!gallow->isWordCorrect()) {
  115.         gallow->setAnswer();
  116.     }
  117.     std::cout << "You win!" << std::endl;
  118.     delete gallow;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement