トランプのシンボル表示
問題
TrumpSymbols.txtを読み込み、入力した文字に対応したシンボルを表示しましょう。
TrumpSymbols.txt
・トランプのシンボルがアスキーアートで書かれたテキストファイルです。
・下記のTrumpSymbols.txtの内容をコピーして使用してください。
・1つのシンボルは、最大横幅20文字、高さ10行になっています。
・シンボル間は空行が入っています。
入力文字と処理
・入力文字はC(クラブ), D(ダイヤ), H(ハート), S(スペード)とし、対応したアスキーアートを表示します。
・アスキーアートが表示されれば、入力待機状態に戻ります。
・C, D, H, S以外が入力されると終了するものとします。
TrumpSymbols.txt
***** ******* ******* ***** ***** ***** ******************* ******************* ***** *** ***** *** ***** ******* * *** ***** ******* ********* ******* ***** *** * *** *** ****** ****** ******** ******** ***************** ***************** *************** ************* *********** ******* *** * *** ******* *********** *************** ***************** ***************** ***** * ***** * *****
例
C, D, H, S のどれかを入力してください。 >S * *** ******* *********** *************** ***************** ***************** ***** * ***** * ***** C, D, H, S のどれかを入力してください。 >D * *** ***** ******* ********* ******* ***** *** * C, D, H, S のどれかを入力してください。 > 終了します。
解答例
using System; using System.Text; using System.IO; namespace Trump { class Program { static void Main(string[] args) { string filePath = @"D:\Documents\enzan1\Trump\TrumpSymbols.txt"; const int symbolsNum = 4; const int symbolHight = 10; String[] symbols = new String[symbolsNum]; //トランプのマークの読み込み using (FileStream fs = new FileStream(filePath, FileMode.Open)) { using (StreamReader sr = new StreamReader(fs)) { for (int i = 0; i < symbolsNum; i++) { StringBuilder sb = new StringBuilder(); for (int j = 0; j < symbolHight; j++) { sb.AppendLine(sr.ReadLine()); } symbols[i] = sb.ToString(); sr.ReadLine(); } } } Boolean loop = true; do { Console.WriteLine("C, D, H, S のどれかを入力してください。"); String str = Console.ReadLine(); switch(str) { case "H": Console.WriteLine(symbols[2]); break; case "S": Console.WriteLine(symbols[3]); break; case "D": Console.WriteLine(symbols[1]); break; case "C": Console.WriteLine(symbols[0]); break; default: loop = false; break; } } while (loop); Console.WriteLine("終了します。"); } } }
using System; using System.Collections.Generic; using System.Text; using System.IO; namespace Trump { class Program { static void Main(string[] args) { string filePath = @"D:\Documents\enzan1\Trump\TrumpSymbols.txt"; const int symbolsNum = 4; const int symbolHight = 10; String[] symbolsName = { "C", "D", "H", "S" }; Dictionary<String, String> symbols = new Dictionary<string, string>(); //トランプのマークの読み込み using (FileStream fs = new FileStream(filePath, FileMode.Open)) { using (StreamReader sr = new StreamReader(fs)) { for (int i = 0; i < symbolsNum; i++) { StringBuilder sb = new StringBuilder(); for (int j = 0; j < symbolHight; j++) { sb.AppendLine(sr.ReadLine()); } symbols[symbolsName[i]] = sb.ToString(); sr.ReadLine(); } } } Boolean loop = true; do { Console.WriteLine("C, D, H, S のどれかを入力してください。"); String str = Console.ReadLine(); if (symbols.ContainsKey(str) == true) { Console.WriteLine(symbols[str]); } else { loop = false; } } while (loop); Console.WriteLine("終了します。"); } } }