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

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

Восстановить пароль Регистрация
 
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
18.02.2013, 13:33     Просьба проверить програмку. Что то у меня не получается с циклом #1
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
#include<iostream>
#include<clocale>
#include<cstdlib>
#include<ctime>
using namespace std;
int main() 
{
setlocale (LC_CTYPE,"rus");
srand( time( NULL ) );
int a,b,d,i,j;
int c,st,x;
int e=100, f=100;
a=rand()%6+1;
b=rand()%6+1;
c=a+b;
cout<<"Счет компьютера = "<<f<<"\n";
cout<<"Счет пользователя = "<<e<<"\n";
cout<<"\nБросте 1 кубик (от 1 до 6):\t"; //определение 1 вводимого числа (случайное число)
cout<<a;
cout<<"\nБросте 2 кубик (от 1 до 6):\t"; //определение 2 вводимого числа (случайное число)
cout<<b;
cout<<"\nВыберете ставку игры:\t"; //определение суммы ставки игры
cin>>st;
cout<<"Загадайте число (от 2 до 12):\n"; //определение числа игрока
cin>>x;
if (2<=x<=12){
for (i=0;i<50;i++){
if(a+b<=7&&c<=7||a+b>7&&c>7) {                          // условие распределения выиграша игроком
e=e+d;
f=f-d;}
else (a+b>7&&c<=7||a+b<=7&&c>7);{
      e=e-d;
      f=f+d;}
 
if (x=a+b){
e=(e+4*c);}
else (e=0||f=0);
break;
}
if (e=0);
cout<<"\nВы проиграли\n";
cout<< "\nКомпьютер выиграл. На счету компьютера""\t"<<f<<"очков\n";
else (f=0);
cout<<"\nПоздравляю. Вы выиграли\n";
cout<< "\nНа Вашем счету""\t"<<f<<"очков\n";
}
else (2>x<12);{
 
cout <<"Введено число не из указанного диапазона\n";}
return(0); 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2013, 13:33     Просьба проверить програмку. Что то у меня не получается с циклом
Посмотрите здесь:

как написать эту программу? а то у меня не получается C++
Помогите, пожалуйста, разобраться с массивами. У меня почему то не получается. C++
C++ написать программу ! Пожалуйста ! У меня не получается !
что у меня не правильно? (не получается вывести 2 массива) C++
Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iifat
2179 / 1332 / 96
Регистрация: 05.06.2011
Сообщений: 3,689
18.02.2013, 13:57     Просьба проверить програмку. Что то у меня не получается с циклом #2
Ты б хоть написал, чего хотел-то...
Цитата Сообщение от taurus47 Посмотреть сообщение
a+b<=7&&c<=7||a+b>7&&c>7
А вот это в точности что означает? (a+b<=7&&c<=7)||(a+b>7&&c>7)? Или ((a+b<=7&&c<=7)||a+b>7)&&c>7? Не помн. навскидку приоритетов, но, сдаётся мне, у && и || они одинаковые, нет?
И почему d нигде ничего не присваивается?
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
18.02.2013, 14:29  [ТС]     Просьба проверить програмку. Что то у меня не получается с циклом #3
Да, действительно, как то некрасивенько....


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
#include<iostream>
#include<clocale>
#include<cstdlib>
#include<ctime>
using namespace std;
int main() 
{
setlocale (LC_CTYPE,"rus");
srand( time( NULL ) );
int a,b,d,i,j;
int c,st,x;
int e=100, f=100;
a=rand()%6+1;
b=rand()%6+1;
c=a+b;
cout<<"Счет компьютера = "<<f<<"\n";
cout<<"Счет пользователя = "<<e<<"\n";
cout<<"\nБросте 1 кубик (от 1 до 6):\t"; //определение 1 вводимого числа (случайное число)
cout<<a;
cout<<"\nБросте 2 кубик (от 1 до 6):\t"; //определение 2 вводимого числа (случайное число)
cout<<b;
cout<<"\nВыберете ставку игры:\t"; //определение суммы ставки игры
cin>>st;
cout<<"Загадайте число (от 2 до 12):\n"; //определение числа игрока
cin>>x;
if (2<=x<=12){
for (i=0;i<50;i++){
if((a+b<=7&&c<=7)||(a+b>7&&c>7)) {                          // условие распределения выиграша игроком
e=e+st;
f=f-st;}
else ((a+b>7&&c<=7)||(a+b<=7&&c>7));{
      e=e-st;
      f=f+st;}
 
if (x=a+b){
e=(e+4*c);
f=(f-4*c)}
else (e=0||f=0);
break;
}
if (e=0);
cout<<"\nВы проиграли\n";
cout<< "\nКомпьютер выиграл. На счету компьютера""\t"<<f<<"очков\n";
else (f=0);
cout<<"\nПоздравляю. Вы выиграли\n";
cout<< "\nНа Вашем счету""\t"<<f<<"очков\n";
}
else (2>x<12);{
 
cout <<"Введено число не из указанного диапазона\n";}
return(0); 
}
iifat
2179 / 1332 / 96
Регистрация: 05.06.2011
Сообщений: 3,689
18.02.2013, 15:36     Просьба проверить програмку. Что то у меня не получается с циклом #4
Цитата Сообщение от taurus47 Посмотреть сообщение
C++
28
if((a+b<=7&&c<=7)||(a+b>7&&c>7)) {
Напоминаю: c=a+b и нигде не меняется. На кой такие сложности?
Цитата Сообщение от taurus47 Посмотреть сообщение
C++
38
else (e=0||f=0);
Это вот что вообще? Если это такой способ присвоить нуль e и f -- можно, конечно, и так, правда, убивать бы, имхо, за такое... Если же это мыслилось как что-то другое, то прости тебя разочаровать.
Цитата Сообщение от taurus47 Посмотреть сообщение
C++
39
break;
Час от часу не легче... Цикл, заканчивающийся однозначным break...
Таки повторю вопрос: шо хотел-то, человече? Задача в чём состоит?
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
18.02.2013, 16:18     Просьба проверить програмку. Что то у меня не получается с циклом #5
Цитата Сообщение от iifat Посмотреть сообщение
Не помн. навскидку приоритетов, но, сдаётся мне, у && и || они одинаковые, нет?
у && приоритет выше
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
18.02.2013, 17:00  [ТС]     Просьба проверить програмку. Что то у меня не получается с циклом #6
Спасибо за потраченное время. Да, признаю задал вопрос не раскрыв его сущность:

Нужно было решить задачку с рандомом:


задача: написать программу, реализующую игру в кости.

Правила игры:
1. Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход
2. Программа с помощью генератора случайных чисел дважды выбирает числа от 1 до 6 (бросает кубик, на гранях которого цифры от 1 до 6)
3. Если сумма выпавших очков:
а) меньше либо равна 7 и играющий назвал число меньше либо равное 7, он выигрывает ставку
б) больше 7 и играющий сделал ставку на число больше 7, он также выигрывает ставку
в) равна названному игроком числу (игрок угадал сумму цифр), он получает в 4 раза больше очков, чем сделанная ставка
г) в противном случае ставка проиграна (если ни одна из ситуаций а-в не имеет места)
В начальный момент у игрока и компьютера по 100 очков. Игра идет до тех пор, пока у кого-либо из играющих останется 0 очков

Кое что исправил, т.б. ненужные убрал переменные и подредактировал условия выполнения равенства,



а "else (e=0||f=0);" это условие когда " ... Игра идет до тех пор, пока у кого-либо из играющих останется 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
#include<iostream>
#include<clocale>
#include<cstdlib>
#include<ctime>
using namespace std;
int main() 
{
setlocale (LC_CTYPE,"rus");
srand( time( NULL ) );
int a,b,i,st,x;
int e=100, f=100;
a=rand()%6+1;
b=rand()%6+1;
cout<<"Счет компьютера = "<<f<<"\n";
cout<<"Счет пользователя = "<<e<<"\n";
cout<<"\nБросте 1 кубик (от 1 до 6):\t"; //определение 1 вводимого числа (случайное число)
cout<<a;
cout<<"\nБросте 2 кубик (от 1 до 6):\t"; //определение 2 вводимого числа (случайное число)
cout<<b;
cout<<"\nВыберете ставку игры:\t"; //определение суммы ставки игры
cin>>st;
cout<<"Загадайте число (от 2 до 12):\n"; //определение числа игрока
cin>>x;
if (2<=x<=12){
for (i=0;i<50;i++){
if((a+b<=7&&x<=7)||(a+b>7&&x>7)) { // условие распределения выиграша игроком
e=e+st;
f=f-st;}
else ((a+b>7&&x<=7)||(a+b<=7&&x>7));{
e=e-st;
f=f+st;}
 
if (x=a+b){
e=(e+4*st);
f=(f-4*st)}
else (e=0||f=0);
break;
}
if (e=0);
cout<<"\nВы проиграли\n";
cout<< "\nКомпьютер выиграл. На счету компьютера""\t"<<f<<"очков\n";
else (f=0);
cout<<"\nПоздравляю. Вы выиграли\n";
cout<< "\nНа Вашем счету""\t"<<f<<"очков\n";
}
else (2>x<12);{
 
cout <<"Введено число не из указанного диапазона\n";}
return(0); 
}
 Комментарий модератора 
Не забывайте выделять код тегами подсветки!
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
18.02.2013, 17:16     Просьба проверить програмку. Что то у меня не получается с циклом #7
Цитата Сообщение от taurus47 Посмотреть сообщение
C++
1
2
3
4
5
if (x=a+b){
e=(e+4*st);
f=(f-4*st)}
else (e=0||f=0);
break;
что это за конструкция? оО

Добавлено через 1 минуту
Цитата Сообщение от taurus47 Посмотреть сообщение
else (f=0);
и это? оО

Добавлено через 20 секунд
Цитата Сообщение от taurus47 Посмотреть сообщение
else (2>x<12);{
и эта Оо оо оО
iifat
2179 / 1332 / 96
Регистрация: 05.06.2011
Сообщений: 3,689
18.02.2013, 17:36     Просьба проверить програмку. Что то у меня не получается с циклом #8
Таки ж прости, но тебе стоило б несколько получше изучить Цэ прежде чем писать программу...
Цитата Сообщение от taurus47 Посмотреть сообщение
"else (e=0||f=0);" это условие когда "
else, если уж хочешь писать на ++, это то, что определено в стандарте ++, а вовсе не то, что тебе вздумалось так записать; в частности, согласно стандарту ++, это оператор, который выполняется, если условие в if не выполняется. У тебя написано выражение; Цэ это, насколько представляю, позволяет. У тебя написано e=0 -- присвоить переменной e нуль, значением выражения будет 0 (ложь); далее идёт || -- "ленивое или"; поскольку левый операнд выдаёт ложь, будет вычислен правый, и переменной f также будет присвоен нуль.
Точки с запятыми и скобки вообще расставлены так, что наводят мысль о выборе бросанием кости...
Почитай ещё то, что мы понаписали -- пару глюков, вижу, исправил, но мы-то написали куда боле!
И повнимательнее, пожалуйста... Программёры, конечно, не сапёры, но что-то общее у нас таки имеется.
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
18.02.2013, 17:52  [ТС]     Просьба проверить програмку. Что то у меня не получается с циклом #9
1.

if (x=a+b){
e=(e+4*st);
f=(f-4*st)}

Ввод равенства, согласно условия задачи ... "равна названному игроком числу (игрок угадал сумму цифр), он получает в 4 раза больше очков, чем сделанная ставка...".
здесь
х - Загаданное игроком число (от 2 до 12);
а - рандом первого кубика;
b - рандом второго кубика;
е - результат (сумма очков игрока);
f - результат (сумма очков компьютера);
st - ставка игрока;


2.

else (f=0);

исследуемое условие, когда сумма очков игрока или компа = 0 (условие прекращения цикла и выведения результатов);


3.


else (2>x<12);{
это рассматривется вариант неправильного ввода числа игроком (в начале выполнения цикла).

... "Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход.."


Если вводиться число <2 and >12 - выводится сообщение:

cout <<"Введено число не из указанного диапазона\n";}
и заканчивается выполнение программы...

Добавлено через 10 минут
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
#include<iostream>
#include<clocale>
#include<cstdlib>
#include<ctime>
using namespace std;
int main() 
{
setlocale (LC_CTYPE,"rus");
srand( time( NULL ) );
int a,b,i,st,x;
int e=100, f=100;
a=rand()%6+1;
b=rand()%6+1;
cout<<"Счет компьютера = "<<f<<"\n";
cout<<"Счет пользователя = "<<e<<"\n";
cout<<"\nБросте 1 кубик (от 1 до 6):\t"; //определение 1 вводимого числа (случайное число)
cout<<a;
cout<<"\nБросте 2 кубик (от 1 до 6):\t"; //определение 2 вводимого числа (случайное число)
cout<<b;
cout<<"\nВыберете ставку игры:\t"; //определение суммы ставки игры
cin>>st;
cout<<"Загадайте число (от 2 до 12):\n"; //определение числа игрока
cin>>x;
if (2<=x<=12){
for (i=0;i<50;i++){
if(a+b<=7&&x<=7||(a+b>7&&x>7)) { // условие распределения выиграша игроком
e=e+st;
f=f-st;}
else (a+b>7&&x<=7||(a+b<=7&&x>7));{
e=e-st;
f=f+st;}
 
if (x=a+b){
e=(e+4*st);
f=(f-4*st)}
else ((e=0)||(f=0));
break;
}
if (e=0);
cout<<"\nВы проиграли\n";
cout<< "\nКомпьютер выиграл. На счету компьютера""\t"<<f<<"очков\n";
else
if (f=0);
cout<<"\nПоздравляю. Вы выиграли\n";
cout<< "\nНа Вашем счету""\t"<<f<<"очков\n";
}
else (2>x<12);{
 
cout <<"Введено число не из указанного диапазона\n";}
return(0); 
}
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
18.02.2013, 19:16     Просьба проверить програмку. Что то у меня не получается с циклом #10
Когда пишете игры лучше писать вот так, а не всё в одном =)
дал некоторые коментарии, чтобы код был более понятен
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 минуту
спрашивайте что непонятно =)
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
18.02.2013, 19:31  [ТС]     Просьба проверить програмку. Что то у меня не получается с циклом #11
Это ППЦ...
Спасибо за потраченное время, не думал что так всё запущено)))

Мне посоветовали более короткий код:
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
#include <iostream>
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");
    int comppoints = 100, playerpoints = 100;
    int playernum, cash;
    int drop[2];
    for(int i=1; !(comppoints < 1) || !(playerpoints > 0); i++)
    {
        system("cls");
        cout<<"Ход "<<i<<endl;
        cout<<"Очков у игрока "<<playerpoints<<endl<<"Очков у компьютера "<<comppoints<<endl;
        cout<<"Введите число от 2 до 12"<<endl;
        cin>>playernum;
        if(playernum < 2 || playernum > 12)
        {
            cout<<"Число не соответствует диапазону"<<endl;
            system("pause");
            continue;
        }
        cout<<"Введите ставку"<<endl;
        cin>>cash;
        if(cash < 1) {cout<<"Ставка не может быть нулевой или отрицательной"<<endl; system("pause"); continue;}
        if(cash > comppoints || cash > playerpoints) {cout<<"Вы не можете поставить больше очков, чем имеется у игроков"<<endl; system("pause"); continue;}
        drop[0] = rand()%6 + 1;
        drop[1] = rand()%6 + 1;
        cout<<"Компьютер выбросил "<<drop[0]<<" и "<<drop[1]<<endl;
        if(drop[0] + drop[1] == playernum)
        {
            cout<<"Вы выиграли 4Х очков"<<endl;
            comppoints -= cash*4;
            playerpoints += cash*4;
            system("pause");
            continue;
        }
        if(drop[0] + drop[1] > 7 && cash > 7 || drop[0] + drop[1] < 7 && cash < 7)
        {
            cout<<"Вы выиграли ставку"<<endl;
            comppoints -= cash;
            playerpoints += cash;
            system("pause");
            continue;
        }
        cout<<"Вы проиграли ставку"<<endl;
        comppoints += cash;
        playerpoints -= cash;
        system("pause");
    }
    system("cls");
    if(playerpoints < 1) cout<<"Игрок проиграл"<<endl; else cout<<"Компьютер проиграл"<<endl;
    system("pause");
}

Хотелось скреативить что то наподобии моего, Вы считаете, что написанный мной код никуда не годится?
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
18.02.2013, 19:43     Просьба проверить програмку. Что то у меня не получается с циклом #12
который последний очень даже ничего =)
отличие от моего лишь в том что в моей версии можно выйти в любой момент, можно отдельно смотреть очки компьютера/игрока, можно выводить правила. В общем то из за этого мой код получился в пару раз больше вашего =) Интерфейс он, к сожалению, делает код шире,а полезности для программиста почти нет, только для конечного пользователя.
Кстати условия выигрыша у вас более оптимально сделано. сначала проверяю на больше меньше, а потом уже на равно =)
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
18.02.2013, 19:59  [ТС]     Просьба проверить програмку. Что то у меня не получается с циклом #13
MrGreg, извените за настойчивость, но с моим кодом в таком виде, который я показал (с некоторыми уточнениями) возможна работа?
Если чесно, очень много убил времени на него, не хочется бросать своё детище. А проверить в Visial Studio, я ещё не умею. Хотя, говорять очень просто...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2013, 09:21     Просьба проверить програмку. Что то у меня не получается с циклом
Еще ссылки по теме:

Нужно написать код программы, а у меня не очень получается C++
C++ Нужно написать код программы, а у меня не очень получается
C++ Нужно написать код программы, а у меня не очень получается . это все что у меня получилось

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

Или воспользуйтесь поиском по форуму:
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
19.02.2013, 09:21     Просьба проверить програмку. Что то у меня не получается с циклом #14
можно и ваш код исправить. Почитайте как в синтаксисе С/С++ задаются конструкции if else. Подправте и я думаю будет работать. =)
Yandex
Объявления
19.02.2013, 09:21     Просьба проверить програмку. Что то у меня не получается с циклом
Ответ Создать тему
Опции темы

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