我有两个问题,我不确定如何修复。
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);
}
}
} }
答案 0 :(得分:0)
您正在使用与Random相同的种子。
正如msdn在Random class
中所述随机数生成从种子值开始。如果重复使用相同的种子,则生成相同的数字序列。产生不同序列的一种方法是使种子值与时间相关,从而与每个新的Random实例产生不同的序列。
在您的情况下,一种简单的方法是不每次都创建新的随机数。
// Throws the dice
static Random diceRandom = new Random();
static public int diceThrow()
{
return diceRandom .Next(1, 7);
}