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

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

Войти
Регистрация
Восстановить пароль
 
extremx
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 11
#1

игра - Hangman - C++

17.01.2012, 23:39. Просмотров 443. Ответов 0
Метки нет (Все метки)

Переделал программу но все еще много надо добовлять.
надо сделать что ввода букв происходило без ENTER.
Надо, чтобы очки продолжались читатся,нарпимер, если игрок отгадает слово, игроку меньше 5 штрафных очков(не может быть негативный) и продолжается разгадка слов. там еще проблема с очков, надо чтобы за один правильний букв +1 и за не правильное -1. например 3 правильное это 3 очка и если следующий не правильний тогда за 1 меньше.
Еще, этот не такои важный но если кто-то знает как это сделать подскажите как - когда вводит 0 вместе вукв игра не продолжается.
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
    #include <iostream>
    #include <iomanip>
    #include <string>
     
    using std::cin;
    using std::cout;
    using std::endl;
    using std::setw;
    using std::string;
    using namespace std;
     
    #include<conio.h>
    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
     
    static void playGame();
    static void printMistakes( int n );
    static int const MAXGUESS = 8;
    static int const MAXLETTER = 'z' - 'a' +1;
    static char String[][15]= {"apple", "banana", "cat", "dog", "elephant", "fish", "giraffe", "hippopotamus", "ice cream","jelly", "kangaroo", "lion", "monkey", "noodles", "octopus", "parrot", "queen", "rabbit", "sun", "tree", "umbrella", "van", "window", "x-ray", "yellow", "zebra"};
     
    //{
    // enum{false, true} bool;
    //}
     
    int main()
    {
    bool again;
    char answer;
    //clrscr();
    cout << "\n\n\tThis is the word guessing game called Hangman.";
    cout << "\n\tThe computer will pick-up a word and you must try to";
    cout << "\n\tguess the lettrs in the word. If you guess the";
    cout << "\n\tword with less than" << MAXGUESS << "mistake, then you win the game!!!";
     
    do
    {
    playGame();
    cout << "\n\nWould you like to play another game?(Y or N)";
    cin >> answer;
     
    if ( answer == 'y' || answer == 'Y' )
    again = true;
    else if ( answer == 'n' || answer == 'N' )
    again = false;
    else
    {
    again = false;
    cout << "\n Your answer\"" << answer << "\"should be Y or N.";
    }
    }
    while (again);
    cout << "\nThank you for playing Hangman!";
    }
     
    static void playGame()
    {
    bool * already;
    char c;
    bool * display;
     
    int found;
    int i;
    char inputChar;
    char inputString[ 15 ];
    int length;
    int letters;
    int mistakes, score, chanscor;
    bool playing;
     
    char word[ 15 ];
    mistakes = 0;
    score = 0;
    //randomize();
     
    strcpy( word, String[ (int)(rand()%26) ] );
    length = strlen( word );
    display = new bool[ length ];
    letters = 0;
     
    for (i=0; i<length; i++ )
    {
    c=word[i];
    if ((c>='a')&&(c<='z'))
    {
    display[i]=false;
    letters++;
    }
    else
    display[i]=true;
    }
     
    cout<<"\n\nI am thinking of a word. ";
     
    if(letters==1)
    cout<<"the word has one letter.";
    else
    cout<<"the word has"<<letters<<"letters.";
    already= new bool[MAXLETTER];
     
    for ( i = 0; i < MAXLETTER; i++ )
    already[i] = false;
    playing = true;
     
    while(playing)
    {
    chanscor = 100 / ( MAXGUESS - mistakes );
    cout << "\nThe word is:";
     
    for ( i = 0; i < length; i++ )
    {
    cout << " ";
     
    if ( display[i] )
    cout << word[i];
    else
    cout << "*";
    }
     
    cout << "\nWhat is your guess? ";
     
    if (( MAXGUESS-mistakes ) - 1 )
    cout << "this is your last guess?";
    else
    cout << "you have" << ( MAXGUESS - mistakes ) << "guessing remaining.";
    gets( inputString );
    strlwr( inputString );
     
    if ( strlen(inputString) == length)
    {
    if( strcmp(word, inputString) == 0 )
    {
    cout<<"Yes the word is\""<<word<<"\"!";
    printMistakes(mistakes);
    playing=false;
    }
    else
    {
    cout<<"Sorry, the word is not\""<<inputString
    <<"\".";
    mistakes++;
    }
    }
    else if (strlen(inputString)!=1)
    {
    cout<<"Your guess\""<<inputString<<"\"must be one letter or the entire word.";
    }
    else
    {
    inputChar=inputString[0];
    if((inputChar<'a')||(inputChar>'z'))
    {
    cout<<"Your guess\""<<inputChar<<"\"must be a letter from A to Z, or the entire word.";
    }
    else if (already[inputChar-'a'])
    {
    cout<<"You have already guessed the following letters:";
     
    for(i=0; i<MAXLETTER; i++)
    cout<<" "<<(char)(i+'a');
    cout<<"\n";
    }
    else
    {
    already[inputChar-'a']= true;
    found=0;
     
    for (i=0; i<length; i++)
     
    if (word[i]==inputChar)
    {
    display[i]= true;
    found++;
    }
     
    if (found <= 0)
    {
    cout<<"Sorry, the letter\""<<inputChar<<"\"is not in the word.";
    mistakes++;
    }
    else
    {
    score=score+chanscor*(MAXGUESS-mistakes);
    cout<<"\n\t Your score now is"<<score<<endl;
     
    if (found==1)
    cout<<"there is one letter\""<<inputChar
    <<"\"in the word.";
    else
    cout<<"yes there are"<<found<<"letters\""<<inputChar<<"\"in the word.";
    playing= false;
    for(i=0; i< length; i++)
    playing = playing || !display[i];
    if (!playing)
    {
    cout<<"You found all the letters of the word\""<<word<<"\".";
    printMistakes(mistakes);
    }
    }
    }
    }
     
    if (mistakes>= MAXGUESS)
    {
    cout<<"the word was\"" << word << "\".";
    playing = false;
    }
    }
    }
     
    static void printMistakes(int n)
    {
    if (n<= 0)
    cout<<"You did not make any mistake. Excellent!";
    else if (n==1)
    cout<<"you made only one mistake. Great!";
    else
    cout<<"you made only"<<n<<"mistakes. Better luck next time!!!";
    getch();
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2012, 23:39     игра - Hangman
Посмотрите здесь:

Игра Жизнь - C++
Написал вот такую реализацию: #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;clocale&quot; using namespace std; int...

Игра «кубики» - C++
Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно....

Игра 2048 - C++
Пытаюсъ написать консольный вариант игры 2048 начал с команды вверх однако по неизвестной мне причине внутренний цикл for перестаёт...

Игра тактикль - C++
Я новичок в с++.Возникла проблема при написание игры, нужно создать в игре искусственный интеллект. Игра называется тактикль. Надо...

игра шахматы - C++
Пришлите кто нибудь исходник игры Шахматы на С++!!! пожалуйста очень надо))))))))))) Добавлено через 19 секунд очень надо))

игра галактика - C++
здравствуйте!Решил написать игру галактика(в консоле).Подскажите примерный алгоритм написания(раньше игры в консоле не писал)

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

Игра Лото - C++
Нужно написать программу в консоли в которой основой будет циклы и массивы (желательно что бы была проверка на совпадение между массивами и...

Игра в кости - C++
всем привет. я недели 3 учусь писать на с++. в моей программе почему то переменная int дает отрицательное число. именно в этой...

Простенькая игра на С++ - C++
Нужен совет! Какую простую игру можно написать на С++ что бы были использованы основные принципы ООП?...я сейчас даже не говорю о её...

Игра Гранди - C++
Вася любит игру Гранди. Но никто не любит Васю. Так что ему не с кем играть в эту игру и ему не важно, кто победит. Единственное, что...

Игра понг - C++
Игра Понг С++! вот моя игра ошибок вроде нету, но почему-то не идет управление клавиатурой, я не могу передвигать плиты, подскажите как...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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