Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
unimaginative
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 7
1

Игра: “Угадай слово”

29.11.2015, 16:16. Просмотров 3615. Ответов 10
Метки нет (Все метки)

Игра: “Угадай слово”

Подготовить массив из минимум 20 слов.
В начале игры с помощью генератора случайных чисел выбирается одно из слов. Далее начиная с выбранного слова идут по порядку.
Количество букв в слове необходимо отметить соответствующим количеством “.” и после правильного ответа заменять на букву (если в слове несколько одинаковых букв то отгаданную букву необходимо открыть во всех местах).
Ввод букв должен происходить без нажатия “Enter”.
За неправильную букву начисляется 1 штрафной пункт.
Игра продолжается пока игрок не соберёт 10 штрафных пунктов, или пока вместо буквы не будет введён “0”.
После каждого угаданного слова у игрока сгорает 5 штрафных пунктов, если такие у него есть (не может быть отрицательное количество штрафных пунктов!). Затем выводится следующее слово.
В конце игры вывести количество угаданных слов. Или поздравление если были угаданы все слова


плз помогите реализовать это чудо
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2015, 16:16
Ответы с готовыми решениями:

Игра угадай слово
Помогите составить алгоритм игры "Угадай слово"(блок-схема)

Игра Угадай Слово ошибка в коде
Здравствуйте,проблема в том, что программа работает не корректно. А именно в начале программы при...

Игра "Угадай слово"
Нашла довольно много разных вариаций на форуме, но все не совсем так, как в моей интерпритации...

Игра «Угадай число»
Игра «Угадай число». Программа отгадывание целого числа, которое «загадал» компьютер в определенном...

Игра в угадай число
Вот код. #include <iostream> #include <cstdlib> #include <ctime> using namespace std; ...

10
RAFA91
Заблокирован
29.11.2015, 17:26 2
тут наверное нужно создать класс имеющий такие поля :

- массив слов. (к примеру вектор)
- поле штрафов
- поле слова которое угадываем
- логический массив в котором будем указывать угаданные буквы (размер зависит от слова)

_______________________________________--

методы :

- положить слово в вектор.
- выбрать случайное слово
- ввод буквы и обработка
- вывод на экран
0
unimaginative
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 7
30.11.2015, 15:34  [ТС] 3
если бы я понимал как это делать :-))
0
RAFA91
Заблокирован
30.11.2015, 15:54 4
для начала хоть создай поля как я тебе сказал. потом подскажу как дальше
0
unimaginative
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 7
01.12.2015, 10:08  [ТС] 5
хотелось бы верить что у меня получится, но понимаю что это абсолютно не моё. Препод задумал из меня сделать программера походу, но мне этого не надо. Предмет был как ознакомительный. Поэтому проще наверное заплатить. Сколько может стоить это удовольствие?
0
daslex
1297 / 541 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
01.12.2015, 17:42 6
Лучший ответ Сообщение было отмечено unimaginative как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <array>
#include <string>
#include <ctime>
#include <cstdlib>
#include <algorithm>
 
using namespace std;
 
 
bool open_char(const string& s, string& temp, string& ch, int& shtraf) {
 
    if (ch == "0") {
        shtraf = 10;
        return false;
    }
    bool flag = true;
 
    if (s.length()>1 && s == ch) {
        return true;
    }
    else if (ch.length() == 1) {
        for (size_t i = 0; i<s.length(); i++) {
            if (s[i] == ch[0]) {
                temp[i] = ch[0];
                flag = false;
            }
        }
    }
    if (flag) shtraf++;
    bool open = false;
 
 
    return open = temp == s;
}
 
bool ugadaika(const string &s, string &temp, int& shtraf) {
    if (shtraf>9) return false;
 
    cout << temp << "\tSHTRAF == " << shtraf << "\n";
    string my_word;
    getline(cin, my_word);
 
    if (!open_char(s, temp, my_word, shtraf)) {
        ugadaika(s, temp, shtraf);
    }
    else {
        shtraf -= 5;
        if (shtraf<0) shtraf = 0;
        cout << "word is open!!!   (" << s << ")\n";
    }
    return true;
}
 
void replace_str(string&s, const char& ch = '.') { for (size_t i = 0; i<s.length(); i++) s[i] = ch; }
 
bool get_word(const string& word, string temp, int &shtraf) {
 
    if (temp.empty()) {
        temp = word;
        replace_str(temp);
    }
    if (shtraf>9) return false;
    return ugadaika(word, temp, shtraf);
}
 
int main() {
    srand(time(0));
    int num_word = rand() % 20;
 
    array<string, 20> a{
        "arbuz","moskwa","reka","pila","dom",
        "gore","luk","mahina","palma","sila",
        "lampa","sok","sufle","begemot","znak",
        "polotno","molot","lopata","grib","son"
    };
 
    random_shuffle(a.begin(), a.end());
 
    size_t i = 0;
    int shtraf = 0;
    string temp;
 
    while (i<20 && shtraf<10) {
        cout << "progress " << i+1 << "//" << 20 << "\n";
        get_word(a[i], temp, shtraf);
        cout << "\n===============================\n\n";
        i++;
    }
 
    if (i == 20) {
        cout << "POZDRAVLAEM!!!! ALL WORDS OPENED!!!!\n";
    }
    else {
        cout << "WORDS OPENED " << i - 1 << " GAME OVER\n";
    }
    system("PAUSE");
}
1
unimaginative
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 7
01.12.2015, 19:02  [ТС] 7
огромное спасибо! Для меня это космос :-)
но DEV++ выкидывает ошибку на

array<string, 20> a{

что это?
0
daslex
1297 / 541 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
01.12.2015, 19:15 8
Цитата Сообщение от unimaginative Посмотреть сообщение
array<string, 20> a{
поменяй на
C++
1
string a[20]={
и
C++
1
random_shuffle(begin(a), end(a));

Не по теме:

еще у меня не по порядку идут, как в задании указано, а просто перемешивается. Поменять не должно быть очень сложно.

0
unimaginative
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 7
01.12.2015, 19:23  [ТС] 9
теперь какой то косяк с

random_shuffle(begin(a), end(a));
0
daslex
1297 / 541 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
01.12.2015, 19:40 10
C++
1
random_shuffle(a, a+20);
0
unimaginative
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 7
01.12.2015, 19:50  [ТС] 11
yehooo.....заработало!
как могу отблагодарить?
0
01.12.2015, 19:50
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2015, 19:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Игра «Угадай число»
4. Игра «Угадай число». Компьютер загадывает число, человек отгадывает. Всего 5 попыток. (random)

Игра "Угадай слова" через массивы!
Получил такое задание! Помогите разобраться! Хотя бы какие то наброски подскажите! Написать...

Игра "Угадай число" на Turbo C++
помогите пожалуйста.Нужно создать игру угадай число на turbo c ++. Один из играющих задумывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.