2017-11-08 5 views
-3

ループの最後にtotalTokens変数の出力が間違っているのはなぜですか?私はそれぞれの推測のために同じ金額を賭けた場合、それは私に適切な出力を与えますが、ユーザーがそれぞれの推測で異なる金額を賭けば、それは間違った出力を提供します。ループの最後にtotalTokens変数の出力が間違っているのはなぜですか?

int returnValue = random.Next(1, 100); 
string input; 
int guess = 0; 
int count = 0; 
int tokens = 1000; 
int bet = 0; 
int totalTokens; 
int betResult = 0; 
int countB = 0; 
int victory = 50;   

Console.WriteLine("What is your bet?"); 
bet = Convert.ToInt32(Console.ReadLine()); 

if (guess >= 1 && guess <= 100) 
{ 
    if (guess > returnValue) 
    { 
     Console.Beep(100,2000); 
     Console.WriteLine("Guess Again! Your guess is too HIGH"); 
     betResult = - bet; 
     countB += 1; 
     count += 1;     
    } 
    if (guess < returnValue) 
    {       
     Console.Beep(300,2000); 
     Console.WriteLine("Guess Again! Your guess is too LOW"); 
     betResult = -bet; 
     countB += 1; 
     count += 1;      
    } 
    if (guess == returnValue) 
    { 
     totalTokens = tokens + (betResult * countB) + victory; 
     Console.Beep(50,2000); 
     Console.Beep(60,2000); 
     Console.Beep(70,2000); 
     Console.WriteLine("You got it RIGHT!!!!!!"); 
     count += 1; 
     Console.WriteLine("Your guess of " +returnValue+ " was right."); 
     Console.WriteLine("took you " +count+ " guesses to win the game."); 
     Console.WriteLine("You won {0} tokens",victory); 
     Console.WriteLine("Your total tokens is {0}", totalTokens); 
    }     
} 

while (guess != returnValue) 
{ 
    Thread.Sleep(500000); 
    Console.Clear(); 
} 
+0

random' 'の範囲は何ですか? –

+0

_guess_の値はどこで設定しますか?問題を再現する正確なコードを提供していないと、あなたの質問は[mcve] – Steve

+0

'totalTokens = tokens +(betResult * countB)+ victory;の欠如の原因となる可能性があります。最後の賭けに賭けの数を掛けたもの。そして、明らかに、各賭け金の額が異なる場合、これは動作しません –

答えて

0

この行は、実際に最後の賭けとしてbetResultを割り当てます。

betResult = -bet; 

あなたが書く必要があります。

betResult -= bet; 
+0

'totalTokens =トークン+(betResult * countB)+勝利;'行も同様に修正する必要があります –

+0

助けてくれてありがとう –

関連する問題