static void Main(string[] args) { if (args.Length > 0 && args[0] == "-e") { UseEmoji = true; Console.OutputEncoding = Encoding.UTF8; } var api = new ChessApi(); RenderGame(api); }
static void RenderGame(ChessApi api) { /* The board: * * A B C D E F G H * ─ ─ ─ ─ ─ ─ ─ ─ * 8 | r n b q k b n r * 7 | p p p p p p p p * 6 | . . . . . . . . * 5 | . . . . . . . . * 4 | . . . . . . . . * 3 | . . . . . . . . * 2 | P P P P P P P P * 1 | R N B K Q B N R */ Console.WriteLine(); Console.WriteLine(" A B C D E F G H"); Console.WriteLine(" ─ ─ ─ ─ ─ ─ ─ ─"); var rows = new[] { "8", "7", "6", "5", "4", "3", "2", "1" }; var cols = new[] { "A", "B", "C", "D", "E", "F", "G", "H" }; var cells = api.Cells.ToDictionary(c => c.coord); foreach (var row in rows) { Console.Write("{0} |", row); foreach (var col in cols) { var cell = cells[col + row]; Console.Write(" {0}", RenderCell(cell)); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine(api.Message); // TODO: Add game over state to the public facing api and handle here Console.WriteLine("Enter a move in the following format: A2 A3 (case insensitive)"); Console.Write("> "); var moveText = Console.ReadLine(); var move = new ParsedMove(moveText); if (move.IsValid) { try { api.Move(move.From, move.To); } catch (Exception ex) { } } Console.Clear(); RenderGame(api); }
static void Main(string[] args) { var api = new ChessApi(); RenderGame(api); }