Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.93
Neetrino
0 / 0 / 0
Регистрация: 10.02.2010
Сообщений: 11
#1

Отгадывание слова - C++

12.02.2010, 23:06. Просмотров 3673. Ответов 3
Метки нет (Все метки)

Ребята,помогите пожалуйста.Нужно разработать программу ,которая описывает процесс отгадывания пользователем слова с использованием определенного числа предоставляемых попыток.Отгадываемое слово (строковой литерал ) хранится в символьном массиве (char [] )- для изменения самого слова требуется редактирование исходного кода программы.Программа должна поддерживать 3 уровня сложности ,каждый из которых связан с определенным числом попыток,имеющих в распоряжении пользователя(например,Сложный уровень - 5 попыток,Средний уровень - 8 попыток и Легкий уровень - 12 попыток).При необходимости эти значения могут быть изменены.Слово 'попытка' означает предложение пользователем конкретной буквы,которая по его мнению,имеется в слове.С самого начала выполнения программы загаданное слово показыввется на экране в виде последовательности разделенных пробелами символов *;число этих символов в точности равняется длине слова.По мере отгадывания отдельных букв,они появляются на каждом шаге изображения постепенно раскрываемого слова.После того,как все предоставленные попытки использованы,программа запрашивает ввод слова и оценивает 'успех' выполеной пользователем работы(угаданное слово или нет)ъ
Ниже приведен рекомендуемый вид экрана во время выполнения программы:

Что наша жизнь - ИГРА
СЛОВО: *******

Уровень сложности игры:
[1]Сложный(5 попыток)
[2]Средний(8 попыток)
[3]Легкий (12 попыток)

Ваш выбор (1,2 или 3) --->1

В вашем распоряжении 5 попыток (уровень 1)
попытка #1 - символ: и
[+] СЛОВО: **и****

попытка #2 - символ:а
[--] СЛОВО: **и****

...

попытка #5 - символ: p
[+] СЛОВО: при**ер

Все 5 попыток использованы!
Введите СЛОВО: принтер

Поздравляем! Вы угадали - это СЛОВО 'принтер'
(результат: 5 попыток - 7 букв)

-или-

....
Все 5 попыток использованы!
Введите СЛОВО: примьер

Увы! Вы не угадали - это СЛОВО 'принтер'
(результат:5 попыток - 5 букв)




вот мой код ,подскажите верен ли он и как его дорработать?

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
#include<iostream>
#include<windows.h>
#include<string>
using namespace std;
 
int main ()
{
 SetConsoleOutputCP(1251);
 SetConsoleCP(1251);
 
 char slovo[8]="принтер";
 int n;
 cout<<"Что наша жизнь - ИГРА..."<<endl;
 cout<<"СЛОВО: ";
 for (int i=1; i<sizeof(slovo); i++)
 {
  slovo[i]='*';
  cout<<slovo[i];
 }
 cout<<"Уровень сложности игры"<<endl;
 cout<<"[1] Сложный (5 попыток)"<<endl;
 cout<<"[2] Средний (8 попыток)"<<endl;
 cout<<"[3] Легкий (12 попыток)"<<endl;
 cout<<"Ваш выбор (1, 2 или 3) ---> ";
 cin>>n;
 if ( n>'3') break;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2010, 23:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отгадывание слова (C++):

Отгадывание числа от 0 до 100000 - C++
Добрый день! Помогите пожалуйста поправить код, для тех, кто знает язык, наверное, сразу будут видны ошибки. скажу сразу, язык знаю...

do-while! Компьютер задумывает целое число из отрезка [0; 100]. На отгадывание дается 10 попыток - C++
Компьютер задумывает целое число из отрезка . На отгадывание дается 10 попыток. После каждой попытки выдается сообщение «больше», «меньше»...

Напечатать все слова отличные от последнего слова, предварительно перенести последнюю букву в начало слова - C++
Дано текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела....

Напечатать слова, которые отличны от последнего слова текста, предварительно удалив из слова последнюю букву - C++
Дана последовательность содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами не менее...

Напечатать все слова, отличные от последнего слова строки, удалив из каждого слова первую и последнюю буквы - C++
Близиться сессия,а завтра мне сдавать 2 проги. Помогите ребят,могу даже 100 скинуть,если уж так трудно помочь. 8.Задан...

Вывести слова в строке ДО слова, у которого одинаковые первая и последняя буквы - C++
С клавиатуры вводится строка, надо вывести все слова до слова, у которого одинаковые первая и последняя буквы. Проблема в том, что я не...

3
faton99
7 / 7 / 0
Регистрация: 13.01.2010
Сообщений: 82
12.02.2010, 23:34 #2
Алгоритм и код надо доработать, я ща занят, если никто тебе не напишет утром набросаю код
0
Neetrino
0 / 0 / 0
Регистрация: 10.02.2010
Сообщений: 11
12.02.2010, 23:47  [ТС] #3
ок!!!спасибо!!!!)
0
faton99
7 / 7 / 0
Регистрация: 13.01.2010
Сообщений: 82
13.02.2010, 14:53 #4
Вот обещанный код:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
int main ()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
 
char slovo[7];
slovo[0]='п';//Записуем слово по буквам в массив
slovo[1]='р';
slovo[2]='и';
slovo[3]='н';
slovo[4]='т';
slovo[5]='е';
slovo[6]='р';
char rez[7];
for(i=0;i<7;i++)//Заполняем в цыкле результат звёздочками
{rez[i]="*"}
 
int n, i, j, k;
k=0;
char simvol;//Символ который будет вводиться с клавиатуры
cout<<"Что наша жизнь - ИГРА..."<<endl;
cout<<"СЛОВО: *******";
 
cout<<"Уровень сложности игры"<<endl;
cout<<"[1] Сложный (5 попыток)"<<endl;
cout<<"[2] Средний (8 попыток)"<<endl;
cout<<"[3] Легкий (12 попыток)"<<endl;
cout<<"Ваш выбор (1, 2 или 3) ---> ";
cin>>n;
if ( n==1)//если выбран Первый уровень
{
    cout<<"В вашем распоряжении 5 попыток (уровень 1)"<<endl;
    for(j=1;j<6;j++)//Цыкл попыток
    {
        cout<<"попытка №"<<j<<" - символ: ";
        cin>>simvol;
        cout<<"СЛОВО: ";
        for (i=0; i<sizeof(slovo); i++)//Сравниваем введенный символ со всеми буквами слова
        {
            if(simvol==slovo[i])//Если в слове есть такая буква
            {
                rez[i]=simvol;//В rez на то место где стоит эта буква вмест * запишется simvol
                k++;//подсчет угаданных букв
                if(k==7)//Если все буквы угадали
                {j=7;}//Останавливаем цыкл попыток
            }
            cout<<rez[i];//Выводим результат
        }
    }
    cout<<"Все 5 попыток использованы!";
    if(k==7)//Если все буквы угаданы
    {
        cout<<"Поздравляем! Вы угадали - это СЛОВО #принтер#";
        cout<<"(результат: 5 попыток - "<<k<<" букв)";
    }
    else//Если не все буквы угаданы
    {
        cout<<"Увы! Вы не угадали - это СЛОВО 'принтер'";
        cout<<"(результат: 5 попыток - "<<k<<" букв)";
    }
}
//Аналогично написан код для второго и третьего уровня
else if ( n==2)//Второй уровень
{
    cout<<"В вашем распоряжении 8 попыток (уровень 2)"<<endl;
    for(j=1;j<9;j++)
    {
        cout<<"попытка №"<<j<<" - символ: ";
        cin>>simvol;
        cout<<"СЛОВО: ";
        for (i=0; i<sizeof(slovo); i++)
        {
            if(simvol==slovo[i])
            {
                rez[i]=simvol;
                k++;
                if(k==7)
                {j=9;}
            }
            cout<<rez[i];
        }
    }
    cout<<"Все 8 попыток использованы!";
    if(k==7)
    {
        cout<<"Поздравляем! Вы угадали - это СЛОВО #принтер#";
        cout<<"(результат: 8 попыток - "<<k<<" букв)";
    }
    else
    {
        cout<<"Увы! Вы не угадали - это СЛОВО 'принтер'";
        cout<<"(результат: 8 попыток - "<<k<<" букв)";
    }
}
else if ( n==3)//третий уровень
{
    cout<<"В вашем распоряжении 12 попыток (уровень 3)"<<endl;
    for(j=1;j<13;j++)
    {
        cout<<"попытка №"<<j<<" - символ: ";
        cin>>simvol;
        cout<<"СЛОВО: ";
        for (i=0; i<sizeof(slovo); i++)
        {
            if(simvol==slovo[i])
            {
                rez[i]=simvol;
                k++;
                if(k==7)
                {j=13;}
            }
            cout<<rez[i];
        }
    }
    cout<<"Все 12 попыток использованы!";
    if(k==7)
    {
        cout<<"Поздравляем! Вы угадали - это СЛОВО #принтер#";
        cout<<"(результат: 12 попыток - "<<k<<" букв)";
    }
    else
    {
        cout<<"Увы! Вы не угадали - это СЛОВО 'принтер'";
        cout<<"(результат: 12 попыток - "<<k<<" букв)";
    }
}
else 
break;
}
Правда я его не проверял, у меня вирусы студию подъели, писал в блокноте возможны гдето незначительные ошибки. Но в целом алгоритм такой.
0
13.02.2010, 14:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2010, 14:53
Привет! Вот еще темы с ответами:

Записать в файл F слова. Прочитать данные из файла и найти слова из 5 букв - C++
Записать в файл F слова. Прочитать данные из файла и найти слова из 5 букв Не получается написать, поправьте что бы работала...

Дан текст. Выделить из него слова не содержащие букв из последнего слова - C++
Помогите решить) 1.Дан текст. Выделить из него слова не содержащие букв из последнего слова 2. Дан текст. Для каждого слова длина...

Написать программу добавления слова «hello» после первого слова введенной строки - C++
Написать программу добавления слова «hello» после первого слова введенной строки C++

С++ Задан текст напечатать слова отличные от последнего слова Visual Studio - C++
Здравствуйте, вопрос такой, я написал программу через функции Её условие заключается в том, что задан текст напечатать все слова...


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

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

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