2013-06-11 20 views
2

我有一個練習練習即將完成,我真的很困惑我將如何做這部分。練習是創建一個BlackJack遊戲,我的Array包含(2,3,4,5,6,7,8,9,10,10,10,10,11),我需要給玩家和經銷商2張牌/每個數字,我如何從該數組中獲得2個隨機選擇的數字到標籤中?如何從給定的數組中隨機返回數字到標籤

感謝 布蘭登

+1

獲得價值你有從數組中隨機選擇項有問題嗎?或者填寫表單上的標籤? – hometoast

+0

http://stackoverflow.com/a/14570501/546922 – emd

+1

+1因爲老實說這是作業。你應該展示你到目前爲止所嘗試過的。 – wonko79

回答

1
public int GetRandomCard() 
{ 
    int[] allCards = {2,3,4,5,6,7,8,9,10,10,10,10,11} 
    Random random = new Random(); 
    int i = random.Next(0, 12); 
    return allCards[i]; 
} 

這應該讓你開始...

Label1.Text = GetRandomCard.ToString() 

而且數組應該是52長,而且每個INT應該有一個分配給它的卡片。這將有助於獲得ace,並且如果您想要將這些int轉換爲圖像,您將獲得隨機數量的套裝。

+0

開始做什麼?獲取重複的卡片?只有一張卡,但至少它可能是隨機的?這個答案最多是不完整的。我們不提供不完整的答案。 –

+0

這是作業。我的猜測是從「如何隨機抽取數字」入手。 – SinisterMJ

+0

我在展示如何從一個數組中獲得一個隨機數,OP說他們卡住了,並且它的功課 –

2

一種方法是在陣列上運行Fisher-Yates shuffle,然後選取前兩項。

你駕駛室拿起執行from here。所有你需要的是將你的數組傳遞到Shuffle,並從混洗陣列中選擇兩個初始項目。

+0

http://stackoverflow.com/a/110570/21418 這裏是一個Fischer-Yates在C#中作爲'Random'的擴展方法。 –

+0

@PrestonGuillot非常好,感謝您分享參考! – dasblinkenlight

0

使用來自random.next(0, array.length)爲指標的返回值從數組

int start = random.Next(0, your_array.Length); 
Label.Text=your_array[start]; 
0
int[] array = new int[] { 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11 }; 
    Random r = new Random(); 
    int cardIndex = r.Next(0, array.Length); 
+1

隨機'始終使用種子進行初始化,缺省值基於系統時間。 提供不同的種子決不會讓僞隨機數生成器變得更隨機 - 它只會改變你從哪裏開始枚舉。 –

+0

因爲你是對的,我編輯了我的答案,並刪除了關於「製作更多隨機」的錯誤陳述。 – wonko79