2015-04-03 44 views
-3

隨機函數的方式與生成的方式。 當計算機生成一個二時,它應該是紙,並說計算機贏或沿着這些線的東西,它正在產生的紙張,但三個數字而不是兩個。該程序正在跳過生成一個兩個所有更嚴格,只是做一個三個

public partial class frmRPS : Form 
{ 
    Random rnd = new Random(); 
    int myWin; 
    int myTie; 
    int myLoss; 

    private void btnRock_Click(object sender, EventArgs e) 
    { 
     picRockYou.Visible = true; 
     picPaperYou.Visible = false; 
     picScissorsYou.Visible = false; 
     int Computer; 
     Computer = rnd.Next(4); 
     if (Computer == 1) 
     { 
      picRockComputer.Visible = true; 
      picPaperComputer.Visible = false; 
      picScissorsComputer.Visible = false; 
      lblOutput.Text = "You Tied Nice Job"; 
      myTie += 1; 
      lblTies.Text = myTie.ToString(); 
      lblOutput.Visible = true; 
     } 
     if (Computer == 2) 
     { 
      picRockComputer.Visible = false; 
      picPaperComputer.Visible = true; 
      picScissorsComputer.Visible = false; 
      lblOutput.Text = "Computer Wins You Lost Try Again"; 
      myLoss += 1; 
      lblLoss.Text = myLoss.ToString(); 
      lblOutput.Visible = true; 
     } 
     if (Computer == 3) 
     { 
      picRockComputer.Visible = false; 
      picPaperComputer.Visible = false; 
      picScissorsComputer.Visible = true; 
      lblOutput.Text = "Congratulations You Won!"; 
      myWin += 1; 
      lblWins.Text = myWin.ToString(); 
      lblOutput.Visible = true; 
     } 
    } 
} 

回答

1

https://msdn.microsoft.com/en-us/library/zd1bc8e5(v=vs.110).aspx,。接下來(INT包括maxValue)的 返回值是

A 32-bit signed integer that is greater than or equal to 0, and less than maxValue

你不處理0值

可能的解決方法:

Computer = rnd.Next(3) + 1; 
+0

閱讀評論,他說他已經嘗試過了這個 – Fredou 2015-04-03 15:25:09

相關問題