2012-04-12 9 views
2

私はWPFの子供向けのクイズを作成しています。ランダムにボタンの内容を割り当てます。

すべての質問は、データベースから来ています。

インターフェイスには質問用のテキストブロックと複数選択肢用の4つのボタンがあります。

ボタンの内容をランダムに割り当てて、正しい回答が常に同じボタンに表示されないようにするにはどうすればよいですか?

+0

の可能重複[SQLでランダムに行を要求するには?] (http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – BrokenGlass

+0

要するに、乱数ジェネレータ(.NET Randomクラスなど)を使用して答えのセットへのランダムな順序、そして一度注文すると、ボタンに回答を割り当てます。あまり漠然とした答えが必要な場合は、あなたが今までに得たものを見せてください。 :) –

答えて

3

には、使用可能な乱数を取得するには

List<string> Shuffle(List<string> answers) 
    { 
     Random r = new Random(); 
     Dictionary<int, string> d = new Dictionary<int, string>(); 
     foreach (var answer in answers) 
     { 
      d.Add(r.Next(), answer); 
     } 
     return d.OrderBy(a => a.Key).Select(b => b.Value).ToList(); 
    } 
+0

より良いシャッフルアルゴリズムを見つけることができるかもしれませんが、それにもかかわらず良い答えです。 – Servy

+0

@Servy、確かにそれは単なるアイデアです – ionden

+0

@iondenは完璧に感謝しています – Noelle

2

本来、正しい答えの場所として0から3までの乱数を生成することでこれを行うことができます。それから残りの答えを、データベースから来る順序どおりに表示します。あなたは答えをシャッフルする方法を使用することができ

var placeHolder = new Random().Next(0,3); 
関連する問題