開発環境
- Microsoft Windows 7 Home Premium (OS)
- Microsoft Visual C# 2010 Express Edition (IDE)
- 言語: C#
『初めてのC# 第2版』(Jesse Liberty+Brian MacDonald著、日向俊二訳、オライリー・ジャパン、2006年、ISBN978-487311-294-7)の 第10章(配列)10.9(練習問題)、練習10-4を解いてみる。
練習10-4.
コード
using System; using System.Text.RegularExpressions; namespace Sample { class Tester { public void Run() { const int rows = 8; const int cols = 8; string[,] chessboard = new string[rows, cols]; for (int i = 0; i < rows; i++) { if (i % 2 == 0) { for (int j = 0; j < cols; j++) { chessboard[i, j] = j % 2 == 0 ? "黒" : "白"; } } else { for (int j = 0; j < cols; j++) { chessboard[i, j] = j % 2 == 0 ? "白" : "黒"; } } } for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { Console.Write(chessboard[i, j]); } Console.WriteLine(); } string row = ""; string col = ""; Regex reg = new Regex("[1-8]"); while (true) { Console.WriteLine("正方形の座標(8×8)を入力"); while (true) { row = Console.ReadLine(); if (reg.IsMatch(row)) { break; } else { Console.WriteLine("1から8の整数を入力してください"); continue; } } while (true) { col = Console.ReadLine(); if (reg.IsMatch(col)) { break; } else { Console.WriteLine("1から8の整数を入力してください"); continue; } } int m = Convert.ToInt16(row); int n = Convert.ToInt16(col); Console.WriteLine(chessboard[m - 1, n - 1]); Console.Write("続けるかどうか(y/n)"); string yn = Console.ReadLine(); if (yn == "n") { break; } } } static void Main() { Tester t = new Tester(); t.Run(); } } }
入出力結果(Console Window)
黒白黒白黒白黒白 白黒白黒白黒白黒 黒白黒白黒白黒白 白黒白黒白黒白黒 黒白黒白黒白黒白 白黒白黒白黒白黒 黒白黒白黒白黒白 白黒白黒白黒白黒 正方形の座標(8×8)を入力 a 1から8の整数を入力してください 1 1 黒 続けるかどうか(y/n)y 正方形の座標(8×8)を入力 1 2 白 続けるかどうか(y/n)y 正方形の座標(8×8)を入力 5 6 白 続けるかどうか(y/n)y 正方形の座標(8×8)を入力 8 8 黒 続けるかどうか(y/n)n 続行するには何かキーを押してください . . .
0 コメント:
コメントを投稿