标签的随机点
本文关键字:随机 标签 | 更新日期: 2023-09-27 18:13:03
我有一个应用程序,我需要从数据库中填充数据到4个标签,我希望这些标签出现在随机位置x,但在以下位置x: 79,199,437,319。
我试图使用Random
类,但它偶尔返回相同的位置。有人能解决这个问题吗?我希望下面的answer1 - answer 4在每次运行应用程序时都洗牌位置。
answer1.Location = new Point(79, 60);
answer2.Location = new Point(199, 60);
answer4.Location = new Point(437, 60);
answer3.Location = new Point(319, 60);
你可以把你的点放在List<Point>
:
var list = new List<Point>
{
new Point(79, 60),
new Point(199, 60),
new Point(319, 60),
new Point(437, 60)
};
然后用Fisher-Yates算法洗牌
var rand = new Random();
var n = list.Count - 1;
for(var n = list.Count; n > 0; n--)
{
int k = rng.Next(n - 1);
var value = list[k];
list[k] = list[n];
list[n] = value;
}
然后使用:
answer1.Location = list[0];
answer2.Location = list[1];
answer3.Location = list[2];
answer4.Location = list[3];
我想你的用法是错误的。
Random类的正确用法是:实例化类
Random rnd1 = new Random();
然后使用"random "函数获取随机数字:
var yourrand = Random.Next(437 /*The maximum*/);