2013-11-06 3 views
0

Я делаю покерную игру на C++ для моего вступления в класс C++ (должен сказать вам, что я только начинающий, поэтому, пожалуйста, извините любую плохую практикующий программист здесь). В настоящее время я работаю над системой ставок, в которой я очень рад, что делает то, что мне нужно. Кроме того, что это не продолжается - игра просто сбрасывается после руки. Вот мой код, я думал, что мне нужно сделать отдельные классы, а затем вызвать эти классы в основном, но я просто не уверен, как это будет иначе, если это так, тогда я удалю этот вопрос.Как отслеживать счет - Консоль C++

{// ConsoleApplication71.cpp : Defines the entry point for the console application. 
// 

#include "stdafx.h" 
#include <iostream> 
#include <string> 
#include <vector> 
#include "Bet.h" 
using namespace std; 

//Bet P = int betP(int money); 

int main() 
{ 
bool win; 
bool lose; 
int Omoney = 100; 
int money = 0; 
int Tmoney = 0; 
int bet = 0; 
int earn = (bet * 2) + Omoney; 

int loseM = 0; 
loseM = loseM + bet; 


cout << "Your start money = " << Omoney << " \n\n\n" << endl; 
cout << "Place your bet here!" << endl; 
cin >> bet; 

money = Omoney - bet; 
cout << "Your total money after bet is " << money << "\n\n"; 


//betP(int money) 
//{ 
// money - bet = money; 
//} 
if (bet > 10) 
{ 
    win = true; 
    if (win = true) 
    { 
     cout << "YOU WIN! \n\n" << endl; 
     /*earn = (earn) + Omoney;*/ 
     cout << "You earned: \n" << earn; 
     Tmoney = earn + (Omoney - bet); 
     cout << "\nTotal money: \n" << Tmoney; 
    } 
} 
else if (bet <= 10) 
{ 
    lose = true; 
    if (lose = true) 
    { 
     cout << "You Lose!\n\n\n" << endl; 
     int Mlose= loseM + bet; 
     cout << "You lost: \n" << Mlose; 
     Tmoney = loseM + (Omoney - bet); 
     cout << "\nTotal money: \n" << Tmoney; 
     cout << "\n\n\n\n"; 
     Omoney = Tmoney; 
     main(); 
    } 
} 


cin.get(); 
cin.get(); 
return 0; 
} 
+0

Вы должны использовать цикл вместо рекурсивного вызова 'main()' снова. – benjymous

+0

if (win = true) Я думаю, вы хотите проверить что-то здесь. используйте оператор equals if (win == true) или if (win) – Montaldo

+3

Фактически, вызов 'main' напрямую запрещен языком. –

ответ

1

Использовать цикл for вместо того, чтобы снова звонить main(). Когда вы вызываете main(), локальные переменные повторно инициализируются.

В качестве альтернативы сделайте глобальную область переменных (объявите их вне main()).

+1

И поскольку вызов 'main' ломает континуум пространственного времени. –

+0

Я никогда не видел, чтобы кто-либо называл main() rec. до:) ... Плохо плохо для читаемости? Во всяком случае, пожалуйста, отметьте как ответ, если это поможет. Спасибо. – rkh

+0

Я не могу отметить ответ так же помог, потому что 7 минут еще не прошел, но как только он это сделает. Также благодаря всем, кто помогал. –

0

Читайте от пользователя «начать деньги» перед циклом, а затем внутри цикла прочитайте ставку и сделайте что-нибудь с этой ставкой. Я думаю, цикл должен повторить чтение ставок, пока у пользователя не закончится деньги.

Смежные вопросы