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

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

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

игра - Hangman - C++

17.01.2012, 23:39. Просмотров 467. Ответов 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();
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2012, 23:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос игра - Hangman (C++):

Игра слов, игра Scrabble - C++
Задание: Создать программу для решения задачи построения слова из некоторого множества букв (игра Scrabble) используя алгоритмы поиска в...

Игра - C++
Помогите решить следующую задачу: Написать программу, которая отгадывает задуманное число в интервале за n вопросов типа &quot;Ваше число,...

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

2Д-игра - C++
Здравствуйте, хочу создать 2D игру. Раньше такие игры писал на C++ Builder, но больше не хочу (не серьёзно это ка-кто). Изучаю OpenGL, но...

Игра на C++ - C++
Господа эксперты, допустим что у меня в графическом режиме есть некий статический обьект. Как мне им управлять с клавиатуры?...

игра (с++) - C++
Здравствуйте! Нужно составить игру про шарики. Если в линии встречаются 3 или больше одинаковых цветов шарико, то нужно этот ряд шаров...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2012, 23:39
Привет! Вот еще темы с ответами:

2D игра на C/C++ - C++
Вообщем задача не из простых (лично для меня) , т.к. что-то могу , а чему-то мне нужно научиться . В институте задали курсовую работу -...

Игра - C++
Доброе время суток! Хочу написать свою первую, простую игру на С++. Посоветуйте с чего начать.

Игра на C++ - C++
Здравствуйте! Интересует такой вопрос: При знаниях: Переменные, условия, циклы, функции, библиотеки в языке C++, можно ли создать...

Игра - C++
Есть вопрос, но не знаю даже как правильно спросить. Написал логику игры &quot;Змейка&quot;. Теперь переношу на WinApi (писал на консоль). ...


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

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

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