Exemplo n.º 1
0
        private bool MoveIsAllowed(Move move, Board board)
        {
            var figure = board.GetFigureOnLocation(move.From);
            if (!figure.CanMoveToLocation(move.To))
                return false;

            var figureOnLocation = board.GetFigureOnLocation(move.To);
            if (figureOnLocation != null && figureOnLocation.Side == move.Side)
                return false;

            if (MoveWouldCauseCheckOnSelf(move, board))
                return false;

            return true;
        }
Exemplo n.º 2
0
        public void Draw(Board board)
        {
            Console.Clear();

            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine();
            Console.WriteLine("  a  b  c  d  e  f  g  h");
            Console.WriteLine();

            for (var row = 8; row >= 1; row--)
            {

                //var line = "";

                for (var att = 0; att <= 1; att++)
                {
                    Console.ForegroundColor = ConsoleColor.DarkYellow;

                    if (att == 0) Console.Write("  ");
                    else Console.Write(row + " ");

                    for (var col = 1; col <= 8; col++)
                    {
                        var figure = board.GetFigureOnLocation(new FieldLocation(row, col));
                        if (figure == null)
                            Console.Write("  ");
                        else
                        {
                            Console.ForegroundColor = figure.Side == GameSide.White
                                ? ConsoleColor.White
                                : ConsoleColor.DarkRed;
                            Console.Write(figure.GetString());
                            Console.Write(figure.GetString());
                        }
                        Console.Write(" ");
                    }
                    Console.WriteLine("");
                }
                Console.WriteLine();
            }

            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine();
            Console.WriteLine("  a  b  c  d  e  f  g  h");
        }