2017-06-05 11 views
-3

私は7人のプレイヤーの中で番号1-21を分けて21個のカードを分ける必要があるゲームを作成しています。私はそれがランダムである必要があるので、すべての数に対して、7つの配列のうちの1つにランダムに追加する関数を作成しようとしました。ケースカード)、その番号を別のカードに渡します。 David、事前にありがとうございます。配列内の数字のセットを分割する

+2

を使用しているようにする必要がありだから何が起こったのか? – Servy

答えて

1

List<int>にはランダムにシャッフルされた21個の数字が含まれています。

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

ここで、最初のプレーヤーには最初の3つの番号を割り当て、2番目の番号には3番目の番号を割り当てることができます。

+0

ありがとう、これは素晴らしい作品です。主に「数」と「結果」が整数で、「ランダム」が可変型のランダムであることを主張しています。また、System.Linqを使用しなければなりませんでしたが、これはUnityにとってはデフォルトではありませんでした。これは素晴らしいことでした(これは当初から明白でしたが、残念ですが、まだC#を初めて使用しています)。ありがとうございました! –

0

申し訳ありませんが、adjanとLestatの回答を使って、1つのコードに変更すると、ここでは私が使ったコードです。彼らのコードは標準のC#で動作すると確信していますが、ユニティには標準の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の

関連する問題