2017-09-14 5 views
-1

私はゲームを賭けて賭けに取り組んでいます(2つの賭けを合わせて7つにすると勝ちますが、そうでなければあなたは負けます)。私が得ている問題は、私の賭けのチップをどのように減らすか上昇させるかを知らないということです。私はスタートチップを100に設定しました。勝利すれば10チップが得られます。もしあなたが負けば、あなたから10チップが取られます。しかし、当選した場合や負けた場合、私のチップは110または90になります。どうすれば私のプログラムは元の100ではなく、最新のチップ量に10チップを加えたり追加したりすることができます。C#WPF賭けゲームの賞金の問題

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    private void button_Click(object sender, RoutedEventArgs e) 
    { 
     #region dice throw 

     Random num = new Random(); 
     int Number = new int(); 
     int Number1 = new int(); 
     int Chips = 100; 

     Number1 = num.Next(1, 7); 
     dice1.Text = Number1.ToString(); 
     Number = num.Next(1, 7); 
     dice2.Text = Number.ToString(); 

     #endregion 

     #region Win/lose 

     if (Number + Number1 >= 7) 
     { 
      if (bet10.IsChecked == true) 
      { 
       totalChips.Text = Chips.ToString(); 
       Chips = Chips + 10; 
      } 
      if (bet20.IsChecked == true) 
      { 
       Chips = Chips + 20; 
       totalChips.Text = Chips.ToString(); 
      } 
      if (bet50.IsChecked == true) 
      { 
       Chips = Chips + 50; 
       totalChips.Text = Chips.ToString(); 
      } 
      winloseblock.Text = "You Win!"; 

     } 
     else 
     { 
      if (bet10.IsChecked == true) 
      { 
       Chips = Chips - 10; 
       totalChips.Text = Chips.ToString(); 
      } 
      if (bet20.IsChecked == true) 
      { 
       Chips = Chips - 20; 
       totalChips.Text = Chips.ToString(); 
      } 
      if (bet50.IsChecked == true) 
      { 
       Chips = Chips - 50; 
       totalChips.Text = Chips.ToString(); 
      } 
      winloseblock.Text = "You lose!"; 

     } 

     #endregion 
    } 
} 
+0

'int Chips = 100;'を 'private void button_Click(object sender、RoutedEventArgs e)'の上の行に移動します。それはそれを動作させるか? – mjwills

+1

[メソッドを呼び出すと変数がゼロにリセットされる]の可能な複製(https://stackoverflow.com/questions/7744497/variables-reset-to-zero-when-i-allall-a-method) – mjwills

+0

スコープと変数のライフタイムが変数でどのように機能するかをよりよく理解する必要があります。私はその話題についてもっと読んで始めます。 –

答えて

0

あなたはChips変数にあなたがボタンをクリックするたびに初期化されています

private void button_Click(object sender, RoutedEventArgs e) 
{ 
    #region dice throw 
    Random num = new Random(); 
    int Number = new int(); 
    int Number1 = new int(); 
    int Chips = 100; 

    ... 
} 

あなたは、このメソッドの外で宣言を移動することで、クラスのChips場を作る必要があります。

int Chips = 100;  

private void button_Click(object sender, RoutedEventArgs e) 
{ 
    #region dice throw 
    Random num = new Random(); 
    int Number = new int(); 
    int Number1 = new int(); 

    ... 
} 
関連する問題