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

игра - Hangman - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ текст http://www.cyberforum.ru/cpp-beginners/thread430280.html
Задан произвольный текст. Слова в тексте могут разделяться одним или несколькими пробелами, знаками пунктуации и переходами на следующую строку. Каждое слово размещается в одной и той же строке (переносы слов не используются). Выполнить следующие действия: найти слова, в которых доля заданных букв максимальна.
C++ [C++] 24-битные BMP Программа не хочет кодировать 24-битные BMP. Под кодированием я понимаю разбитие изображение на квадраты по 10 пикселей (в программе - по 10 байтов, но это не особо существенно потому, что само изображение выходное открываться не хочет), при котором сначала квадраты перемешиваются по вертикали, а потом и по горизонтали. Пример, 1 6 11 16 2 7 12 17 3 8 13 18 => 4 9 14 19... http://www.cyberforum.ru/cpp-beginners/thread430278.html
Практическая работа по классам C++
Построить систему классов для описания плоских геометрических фигур: круг, квадрат, треугольник. Предусмотреть методы для создания объектов, перемещение на плоскости, изменения размеров и вращения на заданный угол.
C++ Сделать задачу на C++
Помогите сделать задачу? Задача на применение функций: Выступление спортсмена оценивают N арбитров (число N>=3!). Во избежание необъективности судейства высшую и низшую оценки отбрасывают и находят среднее из оставшихся баллов. Написать программу, вычисляющую итоговую оценку спортсмена, проверить ее для массива оценок {5.5,6.0,5.6,5.6,5.2,5.7,5.4,5.5}. помогите решить.. Задача на...
C++ Массив и функция http://www.cyberforum.ru/cpp-beginners/thread430255.html
Товарищи, если Вам не тяжело- помогите пожалуйста, собственно надо составить 2 программы в кротчайшие сроки, точнее- к завтрашнему дню. Прошу прощения, что в виде изображения, дело в том, что не знаю как написать данный пример сюда. Но задания звучат примерно так (если не удается разобрать на картинке): Вычислить и вывести на экран в виде таблицы значения функции F на интервале Хнач. до Хкон. С...
C++ перегрузка операторов Описать класс, реализующий указанный ниже тип данных. Класс должен содержать множество конструкторов для создания объектов определенного типа (конструктор по замачиванию и с параметрами, конструктор копии) и представлены в таблице операции над объектами класса (плюс обязательно операцию присваивания) с использованием механизма перегрузки операций. Написать программу, которая демонстрирует работу... подробнее

Показать сообщение отдельно
extremx
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 11
17.01.2012, 23:39     игра - Hangman
Переделал программу но все еще много надо добовлять.
надо сделать что ввода букв происходило без 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();
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru