【发布时间】:2015-08-07 14:37:30
【问题描述】:
我在我的游戏中生成一个随机数:
System.Random rnd = new System.Random ();
int TileType = rnd.Next (0, 8);
问题是数字太随机了。这些数字与瓷砖有关,我没有得到 20 卷的特定瓷砖。
我需要有关制作生成“假”随机数的函数的指导。所以基本上我想确保我在 x 卷中生成每种瓷砖类型。我想 12 可能是 x 的一个很好的起点,但希望能够调整 x。
如果有人能指出我正确的方向,将不胜感激。
更新
这是我目前的想法。感谢@Golo 以这种方式指向我。想法?
- 创建我想要的数字列表。
- 再添加 x 个随机数。
- 随机列表 -var shuffledList = unshuffledList.OrderBy(x => rand.Next()).ToList();
- 获取第一项并从列表中删除。
- 空时重新创建列表。
这应该意味着所有的数字都会频繁出现,但你仍然可以有重复,所以它会保持随机的感觉。
【问题讨论】:
-
您正在寻找“随机播放”或“加权随机数”(取决于您的偏好)。