類型: C#學習筆記目的: 不重複Random的號碼
前言: 説明極可能亂七八糟. . . 一個非寫程式出身的孩子留. . .
小抱怨程式真的久沒寫, 會的東西會變成不會的東西, 雖然概念還在, 但. . .
不過還好開始學的時候, 有把自修的內容筆記寫在部落格上, 加深印象. 這次只要回頭讀自己文章即可, 但. . .
有夠難看的懂的啦!!! 有鑑於此, 爾後盡量打的祥細一點才好. . .
說明及主程式這次算是複習先前學過的, 利用Random隨機產生不重覆的號碼. 就目前小弟知道的有2個方法可行
(如有其它方法也歡迎告知).
- 隨機號碼產生後去比對之前的號碼, 如果有重覆就在重新產生一次.
- 利用隨機換來換去的方法產生號碼, 感覺像是洗撲克牌. 利用Random來隨機的換牌的位置, 這裡的大樂透號碼產生器, 是利用這方法寫的.
大樂透號碼產生器的程式非常的陽春, 只有一個按鈕!
按下按鈕後, 將隨機產生6個號碼.
號碼產生後, 會在下方紅框處.
有興趣可以下載玩一玩, 真有中獎, 記得分紅
程式載點
程式碼說明//我是用自己寫的程式做説明的, 部份和此主題不相關的已刪除 int[] Lottery649 = new int[49];
private void Form_Lottery649_Load(object sender, EventArgs e)
{
//Form Load產生49個號碼 for (int x = 0; x < Lottery649.Length; x++)
{
Lottery649[x] = (x + 1);
}
}
private void BT_GetNumber_Click_1(object sender, EventArgs e)
{
int a, b, c, d;
Random Random49 = new Random();
//我擔心牌洗不夠乾淨, 所以讓它洗5輪. for (d = 0; d < 5; d++ )
{
//每一個位置都換一次 for (a = 0; a < 49; a++)
{
// 先將Lotter649[a]的值給b b = Lottery649[a];
// 隨機產生的c c = Random49.Next(0, 49);
// 隨機產生的[c]給[a] Lottery649[a] = Lottery649[c];
// 最後將原來存在b的值給[c], 就換好位置了. Lottery649[c] = b;
}
}
後記: 我本來打算用Random先寫其它東西的說. . .