在阵列中分裂一组数字

时间:2017-06-05 17:52:38

标签: c# arrays unity3d

我正在创建一个游戏,我需要在7个玩家中划分1-21个数字,将21张牌分成两个,所以每个玩家获得3张牌。我需要它是随机的,所以我试着创建一个函数,对于每个数字,它将它添加到7个数组中的随机一个,如果它试图添加的数组已经有三个数字(或在此案件卡)然后它将该号码给另一张卡。提前谢谢大卫。

2 个答案:

答案 0 :(得分:1)

这会给你一个List<int>,其中包含21个随机抽样的数字。

var numbers =  Enumerable.Range(1, 21);
var random = new Random();
var result = numbers.OrderBy(i => random.Next()).ToList();

现在,您可以为第一个玩家分配前三个数字,将第二个数字分配给接下来的三个,依此类推。

答案 1 :(得分:0)

好的,使用adjan和Lestat的答案,并将其更改为Unity使用的代码,这是我使用的代码。虽然我确信他们的代码可以在标准C#中工作,但是Unity有自己的功能并不总是与标准C#一起工作,所以这就是我改变它的方式。随意使用它。

private void divideAmong() {
    int[] numbers = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
    int[] result = numbers.OrderBy(i => Random.Range(0,22)).ToArray();

} 

注意:您需要确保使用的是System.Linq