Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //что есть пока
- //Помимо main ещё три функции, первая - сама игра
- //(в неё передаётся строка или указатель на строку, считываются буквы с монитора,
- //сравниваются с буквами слова и вызываются две последующие функции), вторая - функция,
- //вызываемая при правильно отгаданной букве, рисует на экране значки "_" по числу букв и заменяет их буквами,
- //третья - вызывается в случае неправильного ответа, рисует виселицу и человечка (http://pastebin.com/w7UwVTrN).
- //В main соответственно создаётся только массив указателей на строки,
- //заполняется словарь - по слову в строке, рандомом выбирается слово, с которым идёт игра, вызывается первая функция.
- #include <iostream>
- #include <cstdlib>
- #include <string>
- #include <cstring>
- #include <ctime>
- #include <cstdlib>
- using namespace std;
- void Game (string *a);
- bool Pic1 (int n);
- void Pic2 (int n);
- //==================================================
- int main ()
- {
- setlocale(LC_CTYPE,"");
- string sl0 = " "; //слова
- string sl1 = " ";
- string sl2 = " ";
- string sl3 = " ";
- string sl4 = " ";
- string sl5 = " ";
- string sl6 = " ";
- string sl7 = " ";
- string sl8 = " ";
- string sl9 = " ";
- string *mass[10]; //массив указателей на слова
- mass[0] = &sl0;
- mass[1] = &sl1;
- mass[2] = &sl2;
- mass[3] = &sl3;
- mass[4] = &sl4;
- mass[5] = &sl5;
- mass[6] = &sl6;
- mass[7] = &sl7;
- mass[8] = &sl8;
- mass[9] = &sl9;
- srand (time (NULL));
- int Random = rand()%9;
- Game (mass[Random]);
- return 0;
- }
- //==================================================
- void Game (string *a) //функция - игра
- {
- system("cls");
- int i=1, j=1, k=1, ochibka=0;
- bool verno = false;
- int lenl = a->size(); // получить длину переданного слова
- char bukva;
- while (i!= 33) //пока в русском языке не кончились буквы
- {
- while (j!= lenl)
- { cout << "_"; j++;} //первый раз выводим символ по количеству букв в слове
- setlocale(LC_CTYPE,"");
- cout <<endl<<"Назовите букву:"<<endl;
- cin >> bukva;
- while (k!= lenl) //поиск
- {
- if ((*a)[k]==bukva) // если совпадение есть, номер совпавшей буквы передаётся в первую рисующую функцию, которая эту букву "открывает"
- {
- if (Pic1 (k)) break;
- verno = true; //проверка на то, было ли совпадение
- }
- if (verno == false) //если совпадения не было
- {
- ochibka++; //число ошибок увеличивается на 1
- Pic2 (ochibka); //передаётся как параметр в функцию, рисующую виселицу
- if (ochibka == 8)
- {
- cout<<endl<<"Вы проиграли!"<<endl<<"Правильный ответ: "<<(*a);
- break;
- }
- }
- verno = false;
- k++;
- }
- i++;
- }
- }
- //==================================================
- bool Pic1 (int n) //n - номер буквы
- {
- system("cls");
- }
- //==================================================
- void Pic2 (int n) //n - число ошибок
- {
- system("cls");
- int mas1[5][4] = { {1, 1, 1, 1}, {1, 256, 2, 256}, {1, 4, 3, 5}, {1, 256, 6, 256}, {1, 7, 256, 8} }; //целочисленный массив, в котором происходит сранвниене
- char mas2[5][4] = { {'|', '-', 'T', '-'}, {'|', ' ', 'o', ' '}, {'|', '-', '|', '-'}, {'|', ' ', '^', ' '}, {'|', '/', ' ', '\ '} }; //массив символьный, в нём храниться картинка
- for (int i = 0; i < 5; i++) //переключение по строкам
- {
- for (int j = 0; j < 4; j++)// переключение по столбцам
- if (mas1[i][j] <= n)
- {
- cout << mas2[i][j]; // вывести символ, стоящий в аналогичной ячейке второго массива
- } else
- cout << " "; // вывести проблел
- cout << endl;
- }
- }
- //==================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement