c#dice roll(i< = maxRolls)

时间:2012-11-01 01:29:45

标签: c#

我有两个问题,我不确定如何修复。

diceThrow()应该随机滚动一个骰子并多次得出答案1-6,但只能得到一个1-6答案而且只能做到这一点。即(6,6,6,6,6,6等)

对于rollDice(),我不确定我是否定义得很差" i"或maxRolls,但应该是i > maxRolls时,程序应该结束并重置。

非常感谢任何有关如何修复其中任何一项的建议,谢谢!

//somewhere else in code
    int maxRolls = RollsNumber();
    int throwresult = diceThrow();
    int i;
//*******************************

    private void rollButton_Click(object sender, EventArgs e)
    {
        rollDice();
        wagerTextBox.Text = null;
        wagerTextBox.Text = scoreTextBox.Text;
        diceThrow();

        MessageBox.Show(Convert.ToString(throwresult));

        if (maxRolls < i)
        {
            MessageBox.Show("You got too greedy.");

           //reset the form

        }
    }
    // Decides the maximum number of rolls before the player loses
    static public int RollsNumber()
     {
        Random rolls = new Random();
        return rolls.Next(1, 10);

    }
    // Throws the dice
    static public int diceThrow()
    {
        Random dice = new Random();
       return dice.Next(1, 7);
    }
    private void rollDice()
    {
        for (i = 0; i <= maxRolls; i++)
        {

                int wager = Convert.ToInt32(wagerTextBox.Text);


                int score = wager * 100;


                scoreTextBox.Text = Convert.ToString(score);



        }  
    }

} }

1 个答案:

答案 0 :(得分:0)

您正在使用与Random相同的种子。

正如msdn在Random class

中所述
  

随机数生成从种子值开始。如果重复使用相同的种子,则生成相同的数字序列。产生不同序列的一种方法是使种子值与时间相关,从而与每个新的Random实例产生不同的序列。

在您的情况下,一种简单的方法是不每次都创建新的随机数。

 // Throws the dice
static Random diceRandom = new Random();
static public int diceThrow()
{
   return diceRandom .Next(1, 7);
}