日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#实现简单的双色球模拟器

發布時間:2024/3/24 C# 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#实现简单的双色球模拟器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

思路如下:
1.在控制臺中購買一注彩票的方法
--請輸入第i號紅球的號碼
--輸入要求:①輸入范圍為1-33②輸入不能重復
2.隨機生成一注彩票的方法
--隨機數random.Next(1,34) ?(意思是從1開始,同時小于34)
--要求①從小到大排列②不能重復
3.開獎,即匹配輸入和生成的彩票,返回中獎等級(寫一方法)
要分別計算紅球和藍球猜中的數量
在main中進行測試

static void Main(){int[]arr1=BuyLottery();int count=0;int level;do{count++;int[]arr2=RandomLottery(); level = TicketsEquals(arr1, arr2);if (level != 0)Console.WriteLine("恭喜,中了{0}等獎,共花費{1:c}元", level, count*2);} while (level != 1);}private static int[] BuyLottery(){int[] arr1 = new int[7]; //數組只放紅球號數,藍球可以不放數組里,不然不方便排序for (int i = 0; i < 6; ){Console.WriteLine("請輸入第{0}個紅球的號碼",i+1);int num = int.Parse(Console.ReadLine());if(num>0&&num<=33&&Array.IndexOf(arr1,num)<0) //這一步同時確認范圍正確和輸入未重復,才能繼續輸入,否則i不+1//arr1[i++] = num; //(這里應該是搜索num對應的值是否在數組里存在!不是搜arr[i]!) //array.indexof的值為-1時表示數組里沒有要查詢的元素,即未重復else if (num <= 0 || num > 33) //之前因為這個錯,測試時一直提示輸入重復,鑄幣!{Console.WriteLine("輸入范圍有誤!");}else if (Array.IndexOf(arr1, num) >=0){Console.WriteLine("輸入重復!");}}Array.Sort(arr1,0,6);while(true){Console.WriteLine("請輸入藍球的號碼");int blue1 = int.Parse(Console.ReadLine());if (blue1 >= 1 || blue1 <= 16){arr1[6] = blue1;break;}else Console.WriteLine("超過輸入范圍!");} //紅球排完序后把藍球放最后return arr1;}//生成隨機彩票private static int[] RandomLottery(){int[] arr2 = new int[7];int number = 0;for (int i = 0; i < 6; ){Random red = new Random(); //生成隨機數number = red.Next(1, 34);if(Array.IndexOf(arr2,number)<0) //判斷過程和輸入一注彩票時相似arr2[i++] = number;}Array.Sort(arr2,0,6);Random blue = new Random(); //生成隨機數int blue2 = blue.Next(1, 17);arr2[6] = blue2;return arr2;}private static int TicketsEquals(int[] arr1, int[] arr2){//這里不應再聲明數組或調用上面生成數組的方法,有形式參數就行,不用管arr1從哪來,否則會一直調用,讓你一直輸入//arr1是在buylottery里面輸入的,在ticketsequals里面只是調用,這樣就只需要在控制臺輸入一次int count1 = 0;int count2 = 0;for (int i = 0; i < 6; i++){if (Array.IndexOf(RandomLottery(), arr1[i], 0, 6)>=0)count1++;}if (arr1[6] == arr2[6])count2 ++;int level;if (count1 + count2 == 7)level = 1;else if (count1 == 6 && count2 == 0)level = 2;else if (count1 == 5 && count2 == 1)level = 3;else if (count1 + count2 == 5)level = 4;else if (count1 + count2 == 4)level = 5;else if (count1 == 2 && count2 == 1)level = 6;else //這里之前條件沒寫對,調試時啥也沒顯示-_-||,還不如不寫level = 0;return level;}} }

偽隨機實現方法還可以在進一步學習后進行優化,這里只用了C#默認的random.Next方法
?

總結

以上是生活随笔為你收集整理的C#实现简单的双色球模拟器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。