staticList<int>CreateNumsList(int min,int max,int count){Random rand =newRandom();var list =newList<int>();for(int i =0; i < count; i++){
list.Add(rand.Next(min, max +1));}return list;}
2.上で作ったメソッドを利用しMainメソッドを作成する。
作例
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading;namespaceflashGame{classMainClass{constint SECOND =3;//表示する秒数constint MIN =1, MAX =100, NUM_COUNT =5;publicstaticvoidMain(string[] args){Random rand =newRandom();while(true){
Console.Write($"enterを入力すると{SECOND}秒間{NUM_COUNT}個の数字が表示されます。");
Console.ReadLine();var list =CreateNumsList(MIN, MAX, NUM_COUNT);string str =string.Join(" ", list);//listの要素を第一引数(今回は半角スペース)で連結した文字列を生成
Console.WriteLine(str);
Thread.Sleep(SECOND *1000);//指定秒停止
Console.Clear();//コンソールクリアint index = rand.Next(list.Count);//非表示にするインデックスを抽選int ans = list[index];//そのインデックスの数値を取り出す
list.RemoveAt(index);//そのインデックスをリストから削除
Console.WriteLine($"先程の数字の中から{NUM_COUNT -1}個表示します。");//list.OrderBy(v=>Guid.NewGuid())はリストをシャッフルするさいの定石
Console.WriteLine(string.Join(" ", list.OrderBy(v => Guid.NewGuid())));
Console.Write("足りない数字を入力してください>");//ユーザーからの入力をintに変換int input =int.Parse(Console.ReadLine());
Console.WriteLine($"{(input == ans ?"OK":"NG("+ ans +")")}");
Console.Write("Retry?yes or no>");string retry = Console.ReadLine();if(retry =="no"){break;}else{
Console.Clear();}}}staticList<int>CreateNumsList(int min,int max,int count){Random rand =newRandom();var list =newList<int>();for(int i =0; i < count; i++){
list.Add(rand.Next(min, max +1));}return list;}}}
コメント