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

Просьба проверить програмку. Что то у меня не получается с циклом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Указатель на целочисленный объект. Указать возможные способы доступа к этому объекту. http://www.cyberforum.ru/cpp-beginners/thread789075.html
здарвствуйте все! помогите пожалуйста с заданиями по мере возможностей: 2) Определив указатель на целочисленный объект, укажите возможные способы доступа к этому объекту. Заранее спасибо всем участвующим и сочувствующим!
C++ Записать в массив X только положительные элементы исходного, а в Y только отрицательные В общем мне нужно ввести массив R, состоящий из 17 элементов:положительных и отрицательных. Массив X должен записывать только положительные, а Y только отрицательные. Программу написал, но выдает что-то не то: #include <iostream> #include <conio.h> #include<iomanip> using namespace std; int main () { int r, x, y, s, p, q, i; cout<<"Vvedite massiv"<<endl; for (i=0;i<17;i++) http://www.cyberforum.ru/cpp-beginners/thread789064.html
Определить количество ведущих единиц C++
здарвствуйте все! помогите пожалуйста с заданиями по мере возможностей: 1) представить программу, позволяющую для заданного целочисленного объекта (short int) определить количество ведущих единиц младшей его тетрады Заранее спасибо всем участвующим и сочувствующим!
C++ определение количества ведущих единиц младшей тетрады его старшего байта
здравствуйте, помогите написать программу по следующей задаче: 1. Представить программу, позволяющую для заданного целочисленного объекта (short int) определить количество ведущих единиц младшей тетрады его старшего байта. 2. На примере тернарного оператора условное выражение приведите его альтернативные реализации. зараннее спасибо.
C++ Укажите возможные способы определения целочисленного объекта http://www.cyberforum.ru/cpp-beginners/thread789035.html
помогите пжл)))
C++ 2. Определив ссылку на константный целочисленный объект, укажите возможные способы доступа к этому объекту помогите пожалуйста) подробнее

Показать сообщение отдельно
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
18.02.2013, 19:16     Просьба проверить програмку. Что то у меня не получается с циклом
Когда пишете игры лучше писать вот так, а не всё в одном =)
дал некоторые коментарии, чтобы код был более понятен
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
//инициализация функций чтобы компилятор знал что они есть
int brosok();
int menu();
int menu1(int com,int hum);
int game(int &com,int &hum);
void gamemonitor();
void hodhum(int &hum);
void hodcom(int &com);
 
int brosok(){//бросок неважно чей
    return rand()%6+1;
}
int menu(){//начальное меню, соответственно выбирается начать игру или выйти
    while(true){
        system("cls");
        cout<<"1. Новая игра"<<endl
            <<"2. Выход"<<endl;
        switch(getch()){
            case '1':
                return 1;
                break ;
            case '2':
                return 2;
                break;
            default:
                break;
        }
    }
}
int menu1(int com,int hum){//Игровое меню, где можно повторить правила, посмотреть текущие очки и выйти из игры
    while(true){
        system("cls");
        cout<<"1. Правила игры"<<endl
            <<"2. Текущий счет"<<endl
            <<"3. Выйти в меню"<<endl
            <<"4. Продолжить/начать игру"<<endl;
        switch(getch()){
            case '1':
                cout<<"Правила игры:"<<endl;
                    cout<<"\t1. Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход"<<endl;
                    cout<<"\t2. Программа с помощью генератора случайных чисел дважды выбирает числа от 1 до 6 (бросает кубик, на гранях которого цифры от 1 до 6)"<<endl;
                    cout<<"\t3. Если сумма выпавших очков:"<<endl;
                    cout<<"\t\tа) меньше либо равна 7 и играющий назвал число меньше либо равное 7, он выигрывает ставку"<<endl;
                    cout<<"\t\tб) больше 7 и играющий сделал ставку на число больше 7, он также выигрывает ставку"<<endl;
                    cout<<"\t\tв) равна названному игроком числу (игрок угадал сумму цифр), он получает в 4 раза больше очков, чем сделанная ставка"<<endl;
                    cout<<"\t\tг) в противном случае ставка проиграна (если ни одна из ситуаций а-в не имеет места)"<<endl;
                    cout<<"\tВ начальный момент у игрока и компьютера по 100 очков. Игра идет до тех пор, пока у кого-либо из играющих останется 0 очков"<<endl;
                    cout<<"\t0. Игровое меню"<<endl;
                    cout<<"Нажмите любую клавишу чтобы продолжить: ";
                    getch();
                break ;
            case '2':
                cout<<"Ваши очки:\t\t"<<hum<<endl
                    <<"Очки компьютера:\t"<<com<<endl
                    <<"Нажмите любую клавишу чтобы продолжить: ";
                    getch();
                break;
            case '3':
                return 3;
                break;
            case '4':
                return 4;
                break;
            default:
                break;
        }
    }
}
void gamemonitor(){//Мониторит что происходит в игре
    int com=100,hum=100;
    while(true){
        switch(menu1(com,hum)){//Если в игровом меню выбрали выход выходит на более высокий уровень
            case 3:
                return;
                break;
            case 4:
                switch(game(com,hum)){//если выбрали продолжить/начать то входит в игру
                    case 0:
                        break;
                    case -1:
                        return;
                }
                break;
        }
    }
}
void hodhum(int &hum,int st,int ch){//отображает кубики и результат человека
    int k1=brosok();
    int k2=brosok();
    cout<<"Ваши кубики: "<<k1<<" "<<k2<<" Сумма: "<<k1+k2<<endl;
    if(ch<=7)
        if((k1+k2)>7){
            hum-=st;
            cout<<"Вы проиграли ставку, ваши потери: "<<st<<endl;
        }
        else
            if((k1+k2)==ch){
                hum+=st*4;
                cout<<"Вы выиграли ставку, ваша прибыль: "<<st*4<<endl;
            }
            else{
                hum+=st;
                cout<<"Вы выиграли ставку, ваша прибыль: "<<st<<endl;
            }
    else
        if((k1+k2)<=7){
            hum-=st;
            cout<<"Вы проиграли ставку, ваши потери: "<<st<<endl;
        }
        else
            if((k1+k2)==ch){
                hum+=st*4;
                cout<<"Вы выиграли ставку, ваша прибыль: "<<st*4<<endl;
            }
            else{
                hum+=st;
                cout<<"Вы выиграли ставку, ваша прибыль: "<<st<<endl;
            }
}
void hodcom(int &com){//отображает ход компьютера и его результат
    int ch=brosok()+brosok(),st=rand()%(com/10);
    int k1=brosok();
    int k2=brosok();
    cout<<endl<<"Компьютер загадывает:\t"<<ch;
    cout<<endl<<"Компьютер ставит:\t"<<st;
    cout<<endl<<"Кубики компьютера: "<<k1<<" "<<k2<<" Сумма: "<<k1+k2<<endl;
    if(ch<=7)
        if((k1+k2)>7){
            com-=st;
            cout<<"Компьютер проиграл ставку, потери компьютера: "<<st<<endl;
        }
        else
            if((k1+k2)==ch){
                com+=st*4;
                cout<<"Компьютер выиграл ставку, прибыль компьютера: "<<st*4<<endl;
            }
            else{
                com+=st;
                cout<<"Компьютер выиграл ставку, прибыль компьютера: "<<st<<endl;
            }
    else
        if((k1+k2)<=7){
            com-=st;
            cout<<"Компьютер проиграл ставку, потери компьютера: "<<st<<endl;
        }
        else
            if((k1+k2)==ch){
                com+=st*4;
                cout<<"Компьютер выиграл ставку, прибыль компьютера: "<<st*4<<endl;
            }
            else{
                com+=st;
                cout<<"Компьютер выиграл ставку, прибыль компьютера: "<<st<<endl;
            }
}
int game(int &com,int &hum){//сама игра
    srand(time(NULL));
    int ch,st;
    bool fl=true;
    while(true){
        system("cls");//очищение экрана
        while(fl){//цикл защиты от "дурака"
            cout<<"Ваше число: ";
            cin>>ch;
            if(ch==0)
                return 0;
            cout<<"Ваша ставка: ";
            cin>>st;
            if(st==0)
                return 0;
            fl=false;
            if(ch<2||ch>12){
                cout<<"Вы ввели неверное число"<<endl;
                fl=true;
            }
            if(st<1||st>hum){
                cout<<"Вы ввели неверную ставку"<<endl;
                fl=true;
            }
        }
        hodhum(hum,st,ch);
        if(hum<=0){//проверка на ваш проигрыш и уведомление
            cout<<"К сожалению вы проиграли =с"<<endl
                <<"В следующий раз вам обязательно повезет!"<<endl;
            getch();
            return -1;//возвратит -1 что значит выйдет в верхнее меню где предложит играть снова либо выход
        }
        hodcom(com);
        if(com<=0){//Проверка на проигрыш компьютера и уведомление
            cout<<"Поздравляем вы выишрали!!!"<<endl
                <<"В честь этого события компания Protcon & Gamble дарит вам Bugaty Verone =D"<<endl;
            getch();
            return -1;//тоже самое
        }
        fl=true;
        getch();
    }
}
int main(){
    setlocale (LC_CTYPE,"rus");
    while(true){
        switch(menu()){
            case 1:
                gamemonitor();//запуск мониторинга
                break;
            case 2:
                return 0;
                break;
        }
    }
}
Добавлено через 1 минуту
спрашивайте что непонятно =)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru