簡體   English   中英

在C#中為WP7選擇隨機字符串

[英]Choosing a random string in C# for WP7

我正在制作一個WP7應用程序,當用戶點擊圖像時,它會隨機決定他們將獲得什么。

現在,我有以下代碼:

string firstdoor = "";

string seconddoor = "";

string thirddoor = "";

string prize1 = "vacation to Hawaii with all expenses covered";

string prize2 = "used glue stick";

string prize3 = "pile of dog dung";

string prize3 = "vacation to Europe with all expenses covered";

string prize3 = "million dollars";

string prize3 = "blank CD";

string prize3 = "temporary tattoo";

string prize3 = "nickel";

string prize3 = "dime";

我想做的是將door s隨機分配給prize s。

例如,當用戶點擊圖像時,將dime分配給thirddoor ,將nickel分配給第一扇門,將一million dollars分配給secondoor

以下是對我來說最有意義的步驟(不會為您編寫所有代碼):

  1. 將所有獎金字符串放入數組中。

  2. 生成介於0和最大獎品數量之間的三個隨機數。

  3. 從獎品陣列中為每個門分配每個隨機數的獎品。

  4. ...

  5. 利潤!

編輯

實際上,這里有一些代碼可以幫助您:

var randomGenerator = new Random();

string[] prizes = { "vacation to Hawaii with all expenses covered",
                    "used glue stick",
                    "pile of dog dung",
                    "vacation to Europe with all expenses covered" };

string firstDoor = prizes[randomGenerator.Next(prizes.Length)];
string secondDoor = prizes[randomGenerator.Next(prizes.Length)];
string thirdDoor = prizes[randomGenerator.Next(prizes.Length)];

假設您不想重復任何獎品,則解決方案會稍微復雜一些,但是您可以帶上Linq和Random的一些技巧:

    var prizes = new string[] {
        "vacation to Hawaii with all expenses covered",
        "used glue stick",
        // etc
        "dime"            
    };

    var rand = new Random();

    var result = (from prize in prizes
                  orderby rand.NextDouble()
                  select prize).Take(3).ToArray();

賈斯汀(Justin),您的回答很好,但可能會導致2個門獲得相同的獎勵。 我相信這可能會更好:

string[] prizes = new string[]
        {
            "Prize 1",
            "Prize 2",
            "Prize 3",
            "Prize 4",
            "Prize 5"
        };

        Random r = new Random();
        var choices = prizes.OrderBy(x => r.Next()).Take(3).ToArray();

        string firstDoor = choices[0];
        string secondDoor = choices[1];
        string thirdDoor = choices[2];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM