トップページ > プログラム > 2015年01月07日 > kDJhAAzR

書き込み順位&時間帯一覧

5 位/183 ID中時間01234567891011121314151617181920212223Total
書き込み数4100000000000000000000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net

書き込みレス一覧

C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
225 :デフォルトの名無しさん[sage]:2015/01/07(水) 00:03:39.74 ID:kDJhAAzR
すみません、この流れを作った>>132です。
一応、報告と、また低レベルな質問をしに来たのですが
今はやめた方がいい感じでしょうか?
C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
229 :デフォルトの名無しさん[sage]:2015/01/07(水) 00:15:10.63 ID:kDJhAAzR
また私のせいで荒れてしまったらすぐ引き上げます。すみません。

まず、
・カード・タイプごとにクラスを切るのをやめた
・カード種類の判別は普通のintの数字のみにした
・int型のリストにランダムでカード種類を表す整数リテラルを入れ、それをシャッフルする

これでやりました
結果から言うと、やりたかった事は出来ました

また、シャッフル(ランダムにする)する処理は昨日一日調べたのですが
FisherYatesを最初使っていたのですが、もっと簡単にできるのがあるという記事を見つけて
FisherYatesをやめ、以下のように書きました。

private static void Fisher(int[] c)
{
int[] cardlist = c; //引数の配列を格納

// 1回じゃ偏りが生じるっぽいので念のため何度かシャッフルを繰り返す
for (int cnt = 0; cnt < 10; cnt++)
{
DeckList.cardlist = cardlist.OrderBy(i => Guid.NewGuid()).ToArray();
}
}

正直、このグイッドについてはあまり理解してないのですが、要するにOrderByというソートメソッドと
乱数を発生させるグイッドメソッドを組み合わせてランダムにインデックスの値をソートさせると認識しています

まず1点目にお聞きしたいのは、上記の処理は何か問題点を含んでいないでしょうか?という事です
ちなみに偏りについてですが、あまり起きないに越したことはないと思いますが、そこまで是が非でも
偏りを解消したいというわけでもないので、程々乱れてくれればいいという観点です。
C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
231 :デフォルトの名無しさん[sage]:2015/01/07(水) 00:17:03.97 ID:kDJhAAzR
すみません、少し訂正です

・カード・タイプごとにクラスを切るのをやめた
・カード種類の判別は普通のintの数字のみにした
・カード種類をintで判定するようにしたので、ArrayListをやめてint配列にした(public static int[] cardlist = {・・・})
・int型のリストにランダムでカード種類を表す整数リテラルを入れ、それをシャッフルする
C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
232 :デフォルトの名無しさん[sage]:2015/01/07(水) 00:23:45.46 ID:kDJhAAzR
何度もすみません
・int型の配列にランダムでカード種類を表す整数リテラルを入れ、それをシャッフルする

でした
C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
243 :デフォルトの名無しさん[sage]:2015/01/07(水) 01:26:30.11 ID:kDJhAAzR
もう一つ質問があったのですが、また日を改めます
質問するレベルじゃない気もしますし

あとシャッフルはGuidやめてFisherYatesにします
ありがとうございました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。