public static Kakegoe GetKakegoeForNum(int num) { Kakegoe result = new Kakegoe(); foreach (Kakegoe koe in Enum.GetValues(typeof(Kakegoe))) { if (num.Equals((int)koe)) { result = koe; break; } } return(result); }
static void Main(string[] args) { // 任意のずんどこの設定 Kakegoe[] arrayKakegoe = new Kakegoe[] { Kakegoe.ずん , Kakegoe.どこ , Kakegoe.ずん , Kakegoe.どこ , Kakegoe.ずん , Kakegoe.どこ , Kakegoe.ずん , Kakegoe.どこ , Kakegoe.ずん }; while (true) { Console.WriteLine("以下キーを選んで入力してください"); Console.WriteLine("[ 1 ] <<< 既定値でずんどこ"); Console.WriteLine("[ 2 ] <<< 任意値でずんどこ"); Console.WriteLine("[ 3 ] <<< 終了"); // キー入力待機 ConsoleKeyInfo input = Console.ReadKey(); Console.WriteLine(""); switch (input.Key.ToString()) { // 既定値でずんどこ case "D1": Zundoko zundoko1 = new Zundoko(); zundoko1.CallKiyoshi(); break; // 指定値でずんどこ case "D2": Zundoko zundoko2 = new Zundoko(arrayKakegoe); zundoko2.CallKiyoshi(); break; // 終了 case "D3": Environment.Exit(0); break; } Console.WriteLine(""); } }
/// <summary> /// 正しい"ずんどこ"の時にキヨシをコールする /// </summary> public void CallKiyoshi() { List <Kakegoe> targetList = new List <Kakegoe>(); while (true) { // 定義された掛け声の中からランダムで掛け声を発声 Random random = new System.Random(); int randomInt = random.Next(Enum.GetValues(typeof(Kakegoe)).Length); Kakegoe koe = KakegoeExtension.GetKakegoeForNum(randomInt); targetList.Add(koe); System.Console.WriteLine(Enum.GetName(typeof(Kakegoe), koe)); // 掛け声チェック if (CheckSize(targetList)) { if (CheckFullMatched(targetList)) { System.Console.WriteLine(CallK); break; } else { // 掛け声のリセット targetList = new List <Kakegoe>(); System.Console.WriteLine(""); } } else { if (!CheckCurrentMatched(targetList)) { // 掛け声のリセット targetList = new List <Kakegoe>(); System.Console.WriteLine(""); } } } }