简体   繁体   English

如何将整数添加到数组并获得随机数?

[英]How to add integers to an array and get a random number?

It's a favorite panel.这是一个最喜欢的面板。 You can select numbers (with button click) and than I would like to add this number to an array and than get a random number from this array.您可以使用 select 数字(单击按钮),然后我想将此数字添加到数组中,然后从该数组中获取随机数。

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;
    }
}

I'm stuck, because I get random number between 0 - 75. I would like to have a random number from the "favorites" array after I click on the buttons.我被卡住了,因为我得到了 0 - 75 之间的随机数。单击按钮后,我想从“收藏夹”数组中获得一个随机数。

What you are doing here你在这里做什么

favorites[randomNumber] = UnityEngine.Random.Range(0, favorites.Length);

Is assign a random value between 0 and 74 to an item in your array.. depending on whatever value randomNumber has at that moment...074之间的随机值分配给数组中的某个项目.. 取决于randomNumber在那一刻具有的任何值...

What you rather want to do is actually access the value from the array using the random value as index like您宁愿做的实际上是使用随机值作为索引从数组中访问值

randomNumber = favorites [UnityEngine.Random.Range(0, favorites.Length)];
Debug.Log(randomNumber);

However what difference will it make if you are filling your array with always the same numbers using b0 and b1 ?但是,如果您使用b0b1始终用相同的数字填充数组,会有什么不同?

After running these methods all elements are either 0 or 1 anyway...运行这些方法后,所有元素都是01无论如何......


Anyway in your question you are also asking for how to Add a number.无论如何,在您的问题中,您还询问如何添加数字。

You shouldn't use an array for this but rather a List<int> like您不应该为此使用数组,而应该使用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);
    }
}
if (DataController.Instance.group == 3)
{
        var randomIndex = UnityEngine.Random.Range(0, favorites.Length);
        Console.WriteLine(favorites[randomIndex]); // random item from your array
}

answer 回答

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM