2017-09-14 2 views
-1

그래서 저는 도박으로 게임을하고 있습니다 (두 개의 주사위가 7을 합친다면 승리합니다, 그렇지 않으면 잃을 것입니다). 내가 얻는 문제는 내 베팅 칩을 줄이거 나 늘리는 방법을 모른다는 것입니다. 칩을 100으로 시작하고 10 칩을 더 얻으면 이기면 10 칩을 가져갈 것입니다. 그러나 승리 또는 패배의 경우, 내 칩은 110 또는 90으로 이동합니다. 어떻게하면 내 프로그램이 원래 칩 번호가 아닌 가장 최근의 칩 금액에 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 
    } 
} 
당신은 버튼을 클릭 Chips 변수마다 초기화하는
+0

'int chips = 100;'을 'private void button_Click (object sender, RoutedEventArgs e)'위의 행으로 이동하십시오. 그게 효과가 있니? – mjwills

+1

[메서드를 호출 할 때 [변수를 0으로 재설정]의 가능한 중복] (https://stackoverflow.com/questions/7744497/variables-reset-to-zero-when-i-call-a-method) – mjwills

+0

범위 및 변수 수명이 변수와 함께 작동하는 방식을 더 잘 이해해야합니다. 나는 그 주제에 관해 더 많이 읽는 것으로 시작할 것입니다. –

답변

0

:

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(); 

    ... 
}