Advertisement
Guest User

Untitled

a guest
Dec 7th, 2021
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.86 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<Windows.h>
  4. #include <string>
  5.  
  6. bool restart_game = true;
  7.  
  8. class Game
  9. {
  10.     std::string game_word, temp, letter_temp;
  11.     char slovo[50]; int i;
  12.     char letter;
  13.     bool is_right = false, game_win = false;
  14.     int change_to_win = 7;
  15.  
  16. public:
  17.  
  18.     Game()
  19.     {
  20.     }
  21.  
  22.     void start()
  23.     {
  24.         setlocale(LC_ALL, "rus");
  25.         using namespace std;
  26.         bool game_start = true;
  27.         cout << "Загадайте слово: ";
  28.         cin >> slovo;
  29.         game_word = slovo;
  30.         letter_temp += '&';//костыль для работы проверки
  31.  
  32.         temp.resize(game_word.size());
  33.         for (int i = 0; i < temp.size(); i++) // игровое поле
  34.         {
  35.             temp[i] = '_';
  36.         }
  37.  
  38.         while (!game_win && !change_to_win == 0)
  39.         {
  40.  
  41.             for (int i = 0; game_word[i]; i++) // проверка слов
  42.             {
  43.                 if (letter == game_word[i] || letter == game_word[i] + 32) // +32 для проверки на верхний и нижний регистр
  44.                 {
  45.                     temp[i] = game_word[i];
  46.                     is_right = true;
  47.                 }
  48.  
  49.             }
  50.  
  51.             if (game_word == temp) // проверка на победу
  52.             {
  53.                 game_win = true;
  54.                 break;
  55.             }
  56.  
  57.             system("cls");
  58.             cout << "Добро пожаловать в игру \"Виселица\"!\nСлово - ";
  59.  
  60.             for (int i = 0; i < temp.size(); i++) // вывод строки загаданного слова
  61.             {
  62.                 cout << temp[i] << " ";
  63.  
  64.             }
  65.  
  66.  
  67.             if (!game_start) // игнорирование первого хода и проверка на правильность буквы
  68.             {
  69.  
  70.                 for (int i = 1; i <= letter_temp.size(); i++)
  71.                 {
  72.                     if (letter == letter_temp[i])//проверка на повтор
  73.                     {
  74.                         cout << "\nВы уже называли данную букву! Выберите новую.\n";
  75.                         is_right = false;
  76.                         break;
  77.  
  78.                     }
  79.                     else
  80.                     {
  81.  
  82.                         if (i == letter_temp.size()) // решению по правильности буквы только после проверки на повтор
  83.                         {
  84.  
  85.                             if (is_right)
  86.                             {
  87.  
  88.                                 cout <<
  89.  
  90.                                     "\n"
  91.                                     "\n"
  92.                                     "\n"
  93.                                     "\n"
  94.                                     "\n"
  95.                                     "\n"
  96.                                     "\n"
  97.                                     "\n"
  98.                                     "\n"
  99.                                     "\n"
  100.                                     "\n"
  101.                                     " ============================\n"
  102.                                     " ||                        ||\n";
  103.                                 cout << "\nВы верно угадали букву!\n";
  104.                                 letter_temp += letter;
  105.                                 letter_temp += (letter - 32);
  106.  
  107.                                 is_right = false;
  108.                                 break;
  109.                             }
  110.                             else
  111.                             {
  112.                                 std::cout << "\nВаша буква не верна\n";
  113.                                 if (change_to_win == 7) {
  114.                                     cout <<
  115.  
  116.                                         "\n"
  117.                                         "\n"
  118.                                         "\n"
  119.                                         "\n"
  120.                                         "\n"
  121.                                         "\n"
  122.                                         "\n"
  123.                                         "\n"
  124.                                         "\n"
  125.                                         "\n"
  126.                                         "\n"
  127.                                         " ============================\n"
  128.                                         " ||                        ||\n";
  129.                                     change_to_win--;
  130.                                 }
  131.                                 else if (change_to_win == 6) {
  132.  
  133.                                     cout <<
  134.                                         "        $$$$$$$$$$$$$$$\n"
  135.                                         "                      $\n"
  136.                                         "                      $\n"
  137.                                         "                      $\n"
  138.                                         "                      $\n"
  139.                                         "                      $\n"
  140.                                         "                      $\n"
  141.                                         "                      $\n"
  142.                                         "                      $\n"
  143.                                         "                      $\n"
  144.                                         "                      $\n"
  145.                                         " ============================\n"
  146.                                         " ||                        ||\n";
  147.                                     change_to_win--;
  148.                                 }
  149.                                 else if (change_to_win == 5) {
  150.                                     change_to_win--;
  151.                                     cout <<
  152.                                         "        $$$$$$$$$$$$$$$\n"
  153.                                         "        |             $\n"
  154.                                         "        |             $\n"
  155.                                         "        |             $\n"
  156.                                         "        |             $\n"
  157.                                         "                      $\n"
  158.                                         "                      $\n"
  159.                                         "                      $\n"
  160.                                         "                      $\n"
  161.                                         "                      $\n"
  162.                                         "                      $\n"
  163.                                         " ============================\n"
  164.                                         " ||                        ||\n";
  165.                                 }
  166.                                 else if (change_to_win == 4) {
  167.                                     change_to_win--;
  168.                                     cout <<
  169.                                         "        $$$$$$$$$$$$$$$\n"
  170.                                         "        |             $\n"
  171.                                         "        |             $\n"
  172.                                         "        |             $\n"
  173.                                         "        |             $\n"
  174.                                         "        O             $\n"
  175.                                         "                      $\n"
  176.                                         "                      $\n"
  177.                                         "                      $\n"
  178.                                         "                      $\n"
  179.                                         "                      $\n"
  180.                                         " ============================\n"
  181.                                         " ||                        ||\n";
  182.                                 }
  183.                                 else if (change_to_win == 3) {
  184.                                     change_to_win--;
  185.                                     cout <<
  186.                                         "        $$$$$$$$$$$$$$$\n"
  187.                                         "        |             $\n"
  188.                                         "        |             $\n"
  189.                                         "        |             $\n"
  190.                                         "        |             $\n"
  191.                                         "        O             $\n"
  192.                                         "      /   \\           $\n"
  193.                                         "                      $\n"
  194.                                         "                      $\n"
  195.                                         "                      $\n"
  196.                                         "                      $\n"
  197.                                         " =============================\n"
  198.                                         " ||                         ||\n";
  199.                                 }
  200.                                 else if (change_to_win == 2) {
  201.                                     change_to_win--;
  202.                                     cout <<
  203.                                         "        $$$$$$$$$$$$$$$\n"
  204.                                         "        |             $\n"
  205.                                         "        |             $\n"
  206.                                         "        |             $\n"
  207.                                         "        |             $\n"
  208.                                         "        O             $\n"
  209.                                         "      / | \\            $\n"
  210.                                         "        |             $\n"
  211.                                         "                      $\n"
  212.                                         "                      $\n"
  213.                                         "                      $\n"
  214.                                         " =============================\n"
  215.                                         " ||                         ||\n";
  216.                                 }
  217.                                 else if (change_to_win == 1) {
  218.                                     change_to_win--;
  219.                                     cout <<
  220.                                         "        $$$$$$$$$$$$$$$\n"
  221.                                         "        |             $\n"
  222.                                         "        |             $\n"
  223.                                         "        |             $\n"
  224.                                         "        |             $\n"
  225.                                         "        O             $\n"
  226.                                         "      / | \\           $\n"
  227.                                         "        |             $\n"
  228.                                         "       / \\            $\n"
  229.                                         "                      $\n"
  230.                                         "                      $\n"
  231.                                         " ============================\n"
  232.                                         " ||                                                       ||\n";
  233.                                 }
  234.                                 cout << "У вас осталось " << change_to_win << " попыток\n";
  235.  
  236.                             }
  237.                         }
  238.                     }
  239.  
  240.                 }
  241.                 if (change_to_win == 0) //проверка на проигрыш
  242.                     break;
  243.             }
  244.  
  245.             cout << "\nУгадайте букву:";
  246.             cin >> letter;
  247.  
  248.             game_start = false; // блок проверки для 1 хода
  249.         }
  250.  
  251.         if (game_win)
  252.         {
  253.             system("color A0");
  254.             system("cls");
  255.             std::cout << "Слово - ";
  256.             for (int i = 0; i < temp.size(); i++) // вывод строки загаданного слова
  257.             {
  258.                 cout << temp[i] << " ";
  259.             }
  260.  
  261.             cout << "\nВы победили!\n";
  262.         }
  263.         else
  264.         {
  265.             system("color C0");
  266.             system("cls");
  267.             cout << "Слово - ";
  268.             for (int i = 0; i < game_word.size(); i++) // вывод строки загаданного слова
  269.             {
  270.                 cout << game_word[i] << " ";
  271.             }
  272.  
  273.             cout << "\nВы Проиграли!\n";
  274.         }
  275.  
  276.         char restart;
  277.  
  278.         cout << "Желаете ли сыграть снова?(Д/Н)";
  279.  
  280.         cin >> restart;
  281.         if (restart == 'Н' || restart == 'н') { restart_game = false; }
  282.         cout << "Введите слово: ";
  283.     }
  284.  
  285. };
  286.  
  287. int main()
  288. {
  289.     setlocale(LC_ALL, "rus");
  290.     system("color F0");
  291.     using namespace std;
  292.  
  293.     srand(time(0));
  294.     SetConsoleCP(1251);
  295.     SetConsoleOutputCP(1251);
  296.  
  297.     do
  298.     {
  299.         Game s;
  300.         s.start();
  301.     } while (restart_game);
  302.  
  303.     return 0;
  304.  
  305. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement