0

基本的に、ポーカー ゲームの骨組みを生成しています。私は単に賭けシステムをダウンさせようとしているだけです。私のコードでつまずいたのは、int の値が元の状態 (100) に戻り続けていることです。私は明らかに何か間違ったことをしています。それが私の質問です (何が間違っているのか、それを修正するにはどうすればよいのか)。

class BetSys
{
public:
    int loseM;
    int bet;
    int earn;
    int money;
    int Tmoney;
    int Omoney;
    void Loop();
    void Flow();
    void Game();

};

void BetSys::Loop()
{
int Omoney = 100;
int bet = 0;
int loseM = 0;
loseM = loseM + bet;
cout << "Your start money = " << Omoney << " \n\n\n" << endl;
Game();

}

void BetSys::Game()
{
bool win;
bool lose;
int Omoney = 100;
int* PointMon = &Omoney;
int money = 0;
int Tmoney = 0;
int bet = 0;
int earn = (bet * 2) + *PointMon;
int loseM = 0;
cout << "Place your bet here!" << endl;
cin >> bet;


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


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

    }
}
}
void BetSys::Flow()
{
Game();
}
4

1 に答える 1

3

および でクラス メンバーおよびint Omoneyローカル変数として宣言しました。あなたのローカルはクラスメンバーを隠しています。BetSys::Game()BetSys::Loop()

それらを削除する必要があります。初期化子リストを使用して、コンストラクターでクラス メンバーを初期化します。

編集

クラスに明示的なパブリックコンストラクターを追加します

...
void Flow();
void Game();
BetSys();

次のように定義します。

BetSys::BetSys() : Omoney(100) {
    cout << "Omoney inited to " << Omoney << endl;
}

そのクラスのインスタンスを作成すると、出力Omoney inited to 100されます!

于 2013-11-09T20:05:26.853 に答える