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; }
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"); }