如題,代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp2 { class Program { static void Main(string[] args) { Random r = new Random(); int 紅球池 = 33, 藍球池 = 16,剩余紅球=6,應選紅球=6,剩余藍球=1/*,選藍球=1*/,t; List<string> 紅球, 藍球,選擇=new List<string>(); string 預選; 紅球 = 初始化(紅球池).ToList(); 藍球 = 初始化(藍球池).ToList(); //預選紅球開始 do { Console.WriteLine("輸入預選紅球[回車跳過]:"); 預選 = Console.ReadLine(); if(預選.Length==1) { 預選 = "0" + 預選; } if(紅球.Remove(預選)) { 選擇.Add(預選); 剩余紅球--; } } while (預選!=""); //預選紅球結束 for (int i = 0; i < 剩余紅球; i++) { t = r.Next(紅球.Count); r = new Random(t); 選擇.Add(紅球[t]); 紅球.RemoveAt(t); } 選擇.Sort((x, y) => x.CompareTo(y)); //預選藍球開始 do { Console.WriteLine("輸入預選藍球[回車跳過]:"); 預選 = Console.ReadLine(); if (預選.Length == 1) { 預選 = "0" + 預選; } if (藍球.Remove(預選)) { 選擇.Add(預選); 剩余藍球--; } } while (預選 != ""); //預選藍球結束 for (int i = 0; i < 剩余藍球; i++) { t = r.Next(藍球.Count); 選擇.Add(藍球[t]); 藍球.RemoveAt(t); } //開始輸出 Console.WriteLine("紅球:"); for (t = 0; t< 應選紅球; t++) { Console.Write($"{選擇[t]}\t"); } Console.WriteLine("\n藍球:"); for (; t < 選擇.Count; t++) { Console.Write($"{選擇[t]}\t"); } Console.Write("\n\n程序結束,按任意鍵退出"); Console.ReadKey(); } static IEnumerable<string> 初始化(int 個數) { for (int i = 0; i < 個數; i++) { if (i < 9) { yield return "0" + (i + 1).ToString(); } else { yield return (i + 1).ToString(); } } } } }
運行結果: