Показать сообщение отдельно

Я тут бред какойта написал
  #5  
Старый 28.07.2008, 14:52
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию Я тут бред какойта написал

Читаю я книгу по С++ там был пример моделирования игры =)

то пример сработал .. я решил немного его переделать и он перестал работать ....

Код:
#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 для выхода:
 
Ответить с цитированием