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