
28.07.2008, 14:52
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
Я тут бред какойта написал
Читаю я книгу по С++ там был пример моделирования игры =)
то пример сработал .. я решил немного его переделать и он перестал работать ....
Код:
#include <stdafx.h>
int roll(void);
void game(int& money,int stav);
int main(int argc, char *argv[])
{
int bank = 1000;
int stavka;
setlocale(LC_ALL,"Russian");
std::cout << "Денег в банке: " << bank << std::endl;
std::cout << "Делай ставку или уходи!(для ухода введите Ctrl+Z): ";
while((stavka = std::cin.get()) != EOF)
{
if(stavka > bank)
{
std::cout << "Ставка не верна! Введите ставку ещё раз: ";
} else {
game(bank,stavka);
std::cout << "Денег в банке:" << bank << std::endl;
if(bank == 0)
{
std::cout << "Вы банкрот! Можете уходить." <<std::endl;
break;
} else {
std::cout << std::endl
<< "Введите ставку для продолжения или Ctrl + Z для выхода: ";
}
}
}
return 0;
}
void game(int& money,int stav)
{
enum Status { CONTINUE, WIN, LOST };
int sum,myPoint;
Status gameStat;
srand(time(NULL));
sum = roll();
switch(sum)
{
case 7: case 11:
gameStat = WIN;
break;
case 2: case 3: case 12:
gameStat = LOST;
break;
default:
gameStat = CONTINUE;
myPoint = sum;
std::cout << "Очки: " << myPoint << std::endl;
break;
}
while (gameStat == CONTINUE){
sum = roll();
if(sum == myPoint)
gameStat = WIN;
else if(sum == 7)
gameStat = LOST;
}
if(gameStat == WIN)
{
std::cout <<"Вы выйграли!!!" << std::endl;
money += stav;
}
else
{
std::cout <<"Вы проиграл!" << std::endl;
money -= stav;
}
}
int roll(void){
int sum1,sum2,all;
sum1 = 1 + rand() % 6;
sum2 = 1 + rand() % 6;
all = sum1 + sum2;
std::cout <<"Результат кидания: " << all << std::endl;
return all;
}
воть ... при запуске я ввожу ставку... например 100
но она не берёт эту ставку а присваивает переменой stavka число 49(так и не понел откуда) потом он не спрашивая меня проходит ещё несколько кругов игры а потм вспоминает о том что надо ввести ставку =)
Вот лог
Денег в банке: 1000
Делай ставку или уходи!(для ухода введите Ctrl+Z): 10
Результат кидания: 11
Вы выйграли!!!
Денег в банке:1049
Введите ставку для продолжения или Ctrl + Z для выхода: Результат кидания: 11
Вы выйграли!!!
Денег в банке:1097
Введите ставку для продолжения или Ctrl + Z для выхода: Результат кидания: 11
Вы выйграли!!!
Денег в банке:1107
Введите ставку для продолжения или Ctrl + Z для выхода: 100
Результат кидания: 8
Очки: 8
Результат кидания: 8
Вы выйграли!!!
Денег в банке:1156
Введите ставку для продолжения или Ctrl + Z для выхода: Результат кидания: 8
Очки: 8
Результат кидания: 8
Вы выйграли!!!
Денег в банке:1204
Введите ставку для продолжения или Ctrl + Z для выхода: Результат кидания: 8
Очки: 8
Результат кидания: 8
Вы выйграли!!!
Денег в банке:1252
Введите ставку для продолжения или Ctrl + Z для выхода: Результат кидания: 8
Очки: 8
Результат кидания: 8
Вы выйграли!!!
Денег в банке:1262
Введите ставку для продолжения или Ctrl + Z для выхода:
|
|
|