Форум программистов, компьютерный форум CyberForum.ru

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

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

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

12.02.2010, 23:06. Просмотров 3636. Ответов 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;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2010, 23:06     Отгадывание слова
Посмотрите здесь:

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

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

Дано предложение, где два слова различны. Найти эти слова - C++
var mas:arrayof string; i,j,k:integer; w,s:string; begin writeln('Введите строку'); readln(s); k:=0; s:=s+' '; for i:=1 to...

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

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

Дана последовательность слов.Напечатать все слова, отличные от слова «по» - C++
задание со строками: Дана последовательность слов.Напечатать все слова, отличные от слова «по». помогите,пожалуйста!:cry:%-):swoon:

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

Слова, в которых встречается первая и последняя буквы предыдущего слова - C++
задан текст.вывести все слова из этого текста ,в которых встречается первая и последняя буквы предыдущего слова,причём не обезательно подрят

Найти порядковый номер слова максимальной длины и позицию слова - C++
Привет. Нужна помощь. Вот задача : Вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно...

Для заданного длинного слова найти в словаре все слова - C++
Для заданного длинного слова найти в словаре все слова, в которых использованы только буквы, которые присутствуют в заданном слове ...

Как из символов слова «топор» получить слова: «ропот», «топот»? - C++
Как из символов слова «топор» получить слова: «ропот», «топот»?

Разбить строку на слова, добавить эти слова в массив строк - C++
Привет всем! Понадобилось решить одну простенькую задачку: Разбить строку на слова, добавить эти слова в массив строк, вывести...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
faton99
7 / 7 / 0
Регистрация: 13.01.2010
Сообщений: 82
12.02.2010, 23:34     Отгадывание слова #2
Алгоритм и код надо доработать, я ща занят, если никто тебе не напишет утром набросаю код
Neetrino
0 / 0 / 0
Регистрация: 10.02.2010
Сообщений: 11
12.02.2010, 23:47  [ТС]     Отгадывание слова #3
ок!!!спасибо!!!!)
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;
}
Правда я его не проверял, у меня вирусы студию подъели, писал в блокноте возможны гдето незначительные ошибки. Но в целом алгоритм такой.
Yandex
Объявления
13.02.2010, 14:53     Отгадывание слова
Ответ Создать тему
Опции темы

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