示例#1
0
        static void Main(string[] args)
        {
            if (args.Length > 0 && args[0] == "-e")
            {
                UseEmoji = true;
                Console.OutputEncoding = Encoding.UTF8;
            }

            var api = new ChessApi();

            RenderGame(api);
        }
示例#2
0
        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);
        }
示例#3
0
        static void Main(string[] args)
        {
            var api = new ChessApi();

            RenderGame(api);
        }