【发布时间】:2012-03-24 23:11:37
【问题描述】:
我正在创建一个简单的游戏,其中计算机生成随机数并将它们相加。规则是,当两个随机数相加小于 17 时,生成另一个随机数并将其添加到先前生成的随机数中。计算机还为用户生成一个随机数。然而,用户决定他是否想要生成更多。如果他愿意,新生成的数字会添加到之前的数字中。
我面临的问题是,生成他的随机数的计算机功能是在 Page_Load 事件中。这导致了一个问题;这意味着当用户显示他的随机数时,假设他决定生成另一个。在 Button_Click 事件中,用户按下“生成”按钮并获得他的新随机数。问题在于每当按下按钮时,页面都会刷新并且计算机随机数会更改,因为该方法位于 page_load 事件中。
如何让电脑产生随机数,存储起来,不受页面其他事件的影响。另外,如何将新生成的用户随机数添加到之前生成的随机数中?
这是代码:
int computer_first_number;
int computer_second_number;
int extra_number;
int computer_total;
int user_number1;
int user_number2;
int user_total;
private int randomNumber(int min, int max)
{
Random random = new Random(BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0));
return random.Next(min, max);
}
protected void Page_Load(object sender, EventArgs e)
{
computer_first_number = randomNumber(1, 10);
computer_second_number = randomNumber(1, 10);
user_number1 = randomNumber(1, 10);
computer_total = computer_first_number + computer_second_number;
while (computer_total < 17)
{
try
{
extra_number = randomNumber(1, 10);
computer_total = computer_first_number + computer_second_number + extra_number;
}
catch (Exception ex)
{
Console.Write(ex);
}
}
}
protected void Button1_Click1(object sender, EventArgs e)
{
user_number2 = randomNumber(1, 10);
user_total = user_number1 + user_number2;
Label4.Text = Convert.ToString(user_total);
}
【问题讨论】: