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

Написать программу, реализующую игру в кости - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
13.02.2013, 22:55     Написать программу, реализующую игру в кости #1
Ребята, всем доброго времени суток...

Посмотрите, пожалуйста, может кто то подскажет что дельное.... Не выполняется код.

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

Правила игры:
1. Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход
2. Программа с помощью генератора случайных чисел дважды выбирает числа от 1 до 6 (бросает кубик, на гранях которого цифры от 1 до 6)
3. Если сумма выпавших очков:
а) меньше либо равна 7 и играющий назвал число меньше либо равное 7, он выигрывает ставку
б) больше 7 и играющий сделал ставку на число больше 7, он также выигрывает ставку
в) равна названному игроком числу (игрок угадал сумму цифр), он получает в 4 раза больше очков, чем сделанная ставка
г) в противном случае ставка проиграна (если ни одна из ситуаций а-в не имеет места)
В начальный момент у игрока и компьютера по 100 очков. Игра идет до тех пор, пока у кого-либо из играющих останется 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
#include "stdafx.h"
#include<iostream> 
#include<clocale> 
#include<cstdlib> 
#include<ctime> 
using namespace std; 
int main() 
{ 
setlocale (LC_CTYPE,"rus"); 
srand( time( NULL ) ); 
int a,b,i; 
int c,st,x; 
double 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&&x<=12){ 
for (e=100;e<0;e++){ 
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*st);} 
else (e=0);
     (f=0); 
break; 
} 
if (e=0); 
cout<<"\nВы проиграли\n"; 
cout<< "\nКомпьютер выиграл. На счету компьютера""\t"<<f<<"очков\n"; 
if (f=0); 
cout<<"\nПоздравляю. Вы выиграли\n"; 
cout<< "\nНа Вашем счету""\t"<<f<<"очков\n"; 
} 
else (2>x||x>12);{ 
 
cout <<"Введено число не из указанного диапазона\n";} 
return(0); 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
13.02.2013, 23:54     Написать программу, реализующую игру в кости #2
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");
}
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
14.02.2013, 00:03  [ТС]     Написать программу, реализующую игру в кости #3
Спасибо, конечно, за помощь. Но вводя свой код я надеялся на на работу с ним (его видом)...
Я предполагал, что бред написан. но не до такой же степени... Можно что либо доработать в моём коде?
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
14.02.2013, 00:36     Написать программу, реализующую игру в кости #4
Цитата Сообщение от taurus47 Посмотреть сообщение
Спасибо, конечно, за помощь. Но вводя свой код я надеялся на на работу с ним (его видом)...
Я предполагал, что бред написан. но не до такой же степени... Можно что либо доработать в моём коде?
Можно, я думаю. Просто у меня природная боязнь кода с однобуквенными переменными.

Добавлено через 7 минут
З.Ы. Код посмотрел. Нет главного цикла, который бы повторял действия до проигрыша. Это, ИМХО, основная ошибка, т.к. с таким циклом можно спокойно вызвать прерывание хода при помощи continue.
Судя по всему, код проходит через строки с присвоением e = 0, f = 0, так как пишет что оба игрока одновременно проиграли и выиграли.
Так же не пойму что делает проверка на правильность ввода числа в конце программы, тем более неправильно составленная.
Yandex
Объявления
14.02.2013, 00:36     Написать программу, реализующую игру в кости
Ответ Создать тему
Опции темы

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