如何将整数添加到数组并获得随机数?
Posted
技术标签:
【中文标题】如何将整数添加到数组并获得随机数?【英文标题】:How to add integers to an array and get a random number? 【发布时间】:2020-10-18 20:42:24 【问题描述】:这是一个最喜欢的面板。 您可以选择数字(单击按钮),然后我想将此数字添加到数组中,然后从该数组中获取随机数。
public int runs;
public int randomNumber;
public int[] favorites = new int[75];
public void RandomButton()
if (DataController.Instance.group == 3)
favorites[randomNumber] = UnityEngine.Random.Range(0, favorites.Length);
Debug.Log(favorites[randomNumber]);
public void b0()
for (runs = 0; runs < favorites.Length; runs++)
favorites[runs] = 0;
public void b1()
for (runs = 0; runs < favorites.Length; runs++)
favorites[runs] = 1;
我被卡住了,因为我得到了 0 到 75 之间的随机数。单击按钮后,我想从“收藏夹”数组中获得一个随机数。
【问题讨论】:
使用List<int>
而不是固定大小的数组,它更适合您的需求。
@Gusman 在 Unity 中的公共数组通过 Inspector 进行初始化,并且可由开发人员调整。因此,除非您需要在运行时通过代码添加或删除元素,否则 List<int>
或 int[]
的行为方式基本相同;)
@derHugo 如果您阅读该问题,您将看到用户在运行时通过用户交互动态添加值。并且拥有Count
属性来知道列表中有多少个数字是解决他的问题的关键。所以,List<int>
是他需要的。
@Gusman 好点!实际上没有注意到添加值也是问题的一部分
@derHugo 问题是代码与问题无关,他的要求与他正在做的事情完全不同;)
【参考方案1】:
你在这里做什么
favorites[randomNumber] = UnityEngine.Random.Range(0, favorites.Length);
将0
和74
之间的随机值分配给数组中的项目.. 取决于randomNumber
在那一刻具有的任何值...
您更愿意做的实际上是使用随机值作为索引来访问数组中的值
randomNumber = favorites [UnityEngine.Random.Range(0, favorites.Length)];
Debug.Log(randomNumber);
但是,如果您使用b0
和b1
始终用相同的数字填充数组,会有什么不同?
运行这些方法后,所有元素要么是0
要么是1
...
无论如何,在您的问题中,您还询问如何添加一个数字。
您不应为此使用数组,而应使用 List<int>
之类的
public List<int> favorites = new List<int>();
public void AddNumber(int newNumber)
favorites.Add(newNumber);
public void RandomButton()
if (DataController.Instance.group == 3)
randomNumber = favorites[UnityEngine.Random.Range(0, favorites.Count)];
Debug.Log(randomNumber);
【讨论】:
我想他想要var number = favorites[rnd.Next(0, favorites.Length)];
...
这基本上就是Random.Range(0, favorites.Count)
(或数组的长度)所做的......
Next
上限为exclusive,不包括在内。
Random.Range
与 int
参数一起使用时相同:Return a random integer number between min [inclusive] and max [exclusive] (Read Only).
谢谢!您的评论非常有帮助,但我想从这个数组中生成一个随机数。 b0 - 将数字 0 添加到位置 0 和 b1 将数字 1 添加到位置 1 所以收藏夹[0,1] 等等.. 并且从这个收藏夹[] 生成一个随机数 0 或 1 等【参考方案2】:
if (DataController.Instance.group == 3)
var randomIndex = UnityEngine.Random.Range(0, favorites.Length);
Console.WriteLine(favorites[randomIndex]); // random item from your array
answer
【讨论】:
以上是关于如何将整数添加到数组并获得随机数?的主要内容,如果未能解决你的问题,请参考以下文章