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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.93
Neetrino
0 / 0 / 0
Регистрация: 10.02.2010
Сообщений: 11
12.02.2010, 23:06     Отгадывание слова #1
Ребята,помогите пожалуйста.Нужно разработать программу ,которая описывает процесс отгадывания пользователем слова с использованием определенного числа предоставляемых попыток.Отгадываемое слово (строковой литерал ) хранится в символьном массиве (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     Отгадывание слова
Посмотрите здесь:

C++ Напечатать все слова отличные от последнего слова, предварительно перенести последнюю букву в начало слова
Записать в файл F слова. Прочитать данные из файла и найти слова из 5 букв C++
C++ do-while! Компьютер задумывает целое число из отрезка [0; 100]. На отгадывание дается 10 попыток
Задан текст, напечатать слова этого текста отличные от последнего слова C++
Напечатать все слова, отличные от последнего слова строки, удалив из каждого слова первую и последнюю буквы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
faton99
 Аватар для 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
 Аватар для 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     Отгадывание слова
Ответ Создать тему
Опции темы

Текущее время: 04:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru