1

我正在尝试制作一个程序,只要它被按下,它就会切换 button1 的位置。出于某种奇怪的原因,随机并不是随机的那么好。Button1 只是沿着倾斜 -45 度的同一条对角线移动。

public void button1_Click(object sender, EventArgs e)
    {
        int tempX, tempY;

        Random but1X = new Random();
        tempX = but1X.Next(10, 500);

        Random but1Y = new Random();
        tempY=but1Y.Next(60,490);

        button1.Location = new Point(tempX, tempY);
    }

我听说这样做的原因是因为每当按下 button1 时我都会创建一个新的随机实例,但是当我尝试将随机代码放入方法中时,我仍然得到相同的结果。知道如何让这个按钮真正随机移动,而不仅仅是在幻灯片上上下移动吗?

4

2 回答 2

4

尝试不为您想要的每个随机值实例化它:

public void button2_Click(object sender, EventArgs e)
{
    int tempX, tempY;

    Random rnd = new Random();
    tempX = rnd.Next(10, 500);
    tempY = rnd.Next(60,490);

    button1.Location = new Point(tempX, tempY);
}

我用两个按钮对此进行了测试,它适用于随机分布。

于 2013-03-10T02:37:53.393 回答
-1

所有时间新的随机数.....在这里打印标签“New_Random”

try
{
    Random randomClass = new Random();
    List<int> collection = new List<int>();

    while (collection.Count <= 100)
    {
        var temp = randomClass.Next(1, 40);
        if (!collection.Contains(temp))
        {
            collection.Add(temp);

            int New_Reandom = Convert.ToInt32(temp);
        }
    }
}
catch
{
}
于 2013-03-10T05:08:37.287 回答