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

Очередная формация давно решённой задачи - C++

Восстановить пароль Регистрация
 
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
12.02.2013, 12:31     Очередная формация давно решённой задачи #1
Всем доброго времени суток!

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

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

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

Попробовал самостоятельно написать програмку, но к сожалению у меня самостоятельно не определяются числа (random) и вообще как то корявенько получилось. Просьба просмотреть намётанным взглядом (смех и издёвки не уместны, как никак первый опыт)....



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
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <cstdlib>
#include <ctime>
using namespace std; 
 
int main() { 
setlocale (LC_CTYPE,"rus"); 
srand( (unsigned)time( NULL ) ); 
int a,b,c,st;
int e=100; 
int f=100; 
a=rand()%6+1;
b=rand()%6+1;
cout<<"Бросте 1 кубик (от 1 до 6):\n"; //определение 1 вводимого числа (случайное число) 
cin>> a;
cout<< "Бросте 2 кубик (от 1 до 6):\n"; //определение 2 вводимого числа (случайное число) 
cin>> b;
cout<<"Загадайте число (от 2 до 12):\n"; //определение числа игрока 
cin>>c;
while (2<=c<=12){
if(2<=c<=12){
cout<<"Выберете ставку игры (от 1 до 20):\n"; //определение суммы ставки игры 
cin>>st;
if
(a+b<=7&&c<=7||a+b<=12&&c<=12) { // условие распределения выиграша игроком
 
e=e+st;
f=f-st;}
 
else {
*
e=e-st;
f=f+st;}
if
(c=a+b){ 
e=e+4*c;}
 
for
(;e<=0,f<=0;e++,f++) //определение условий работы цикла 
{
e+=e;
f+=f;
}
if
(e=0){ 
cout<<"Вы проиграли...\n"; 
cout<<"Выиграл компьютер. Его выиграш составляет:"<<f<<"\n"; 
}
else { 
cout<<"Я Вас поздравляю.Вы выиграли. Ваш выиграш составляет:"<<e<<"\n";} 
}
else{
cout<<"Введено число не из указанного диапазона";}
}
return 0; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 12:31     Очередная формация давно решённой задачи
Посмотрите здесь:

C++ задачи
C++ Очередная сортировка структуры
C++ задачи
C++ задачи на с++
C++ Задачи
C++ Задачи на C++
C++ Давно не писала ничего на Dev C++ выдает ошибки не могу понять как их исправить
Очередная запись в реестр - изменения не вносятся C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13954 / 8785 / 1222
Регистрация: 24.12.2010
Сообщений: 15,901
12.02.2013, 14:06     Очередная формация давно решённой задачи #2
Ты сначала даешь a и b рандомные значения,
C
1
2
a=rand()%6+1;
b=rand()%6+1;
А потом на их место вводишь числа с терминала
C
1
 cin >> a; cin>>b;
В результате чего твои рандомные a,b забиваются введенными. Ты уж определись, как ты будешь их - из датчика случайностей (что ИМХО, вернее) или заставишь вводить их с терминала.
Короче, убери строчки 16-19
Вот это
C
1
2
while (2<=c<=12){
if(2<=c<=12){
тоже несколько странно. Зачем 2 раза проверять одно условие?
Дальше смотреть не стал...
taurus47
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
12.02.2013, 14:38  [ТС]     Очередная формация давно решённой задачи #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
53
#include <iostream>
#include <clocale>
#include <cstdlib>
#include <ctime>
using namespace std; 
 
int main() { 
setlocale (LC_CTYPE,"rus"); 
srand( (unsigned)time( NULL ) ); 
int a,b,c,st;
int e=100; 
int f=100; 
cout<<"Бросте 1 кубик (от 1 до 6):\n"; //определение 1 вводимого числа (случайное число) 
a=rand()%6+1;
cout<< "Бросте 2 кубик (от 1 до 6):\n"; //определение 2 вводимого числа (случайное число) 
b=rand()%6+1;
cout<<"Загадайте число (от 2 до 12):\n"; //определение числа игрока 
cin>>c;
if(1<c<13){
cout<<"Выберете ставку игры (от 1 до 20):\n"; //определение суммы ставки игры 
cin>>st;
if
(a+b<=7&&c<=7||a+b<=12&&c<=12) { // условие распределения выиграша игроком
 
e=e+st;
f=f-st;}
 
else {
e=e-st;
f=f+st;}
if
(c=a+b){ 
e=e+4*c;}
 
for
(;e<=0,f<=0;e++,f++) //определение условий работы цикла 
{
e+=e;
f+=f;
}
if
(e<=0){ 
cout<<"Вы проиграли...\n"; 
cout<<"Выиграл компьютер. Его выиграш составляет:"<<f<<"\n"; 
}
else { 
cout<<"Я Вас поздравляю.Вы выиграли. Ваш выиграш составляет:"<<e<<"\n";} 
}
else
cout<<"Введено число не из указанного диапазона";
 
return 0; 
}
Yandex
Объявления
12.02.2013, 14:38     Очередная формация давно решённой задачи
Ответ Создать тему
Опции темы

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