예제 #1
0
        static void Main(string[] args)
        {
            try
            {
                ChessMatch match = new ChessMatch();

                while (!match.finished)
                {
                    try
                    {
                        Console.Clear();
                        Screen.printMatch(match);

                        Console.Write("Origin: ");
                        Position origin = Screen.readChessPosition().toPosition();
                        match.validateOriginPosition(origin);

                        bool[,] possiblePositions = match.chessboard.piece(origin).possibleMoves();
                        Screen.printBoard(match.chessboard, possiblePositions);

                        Console.Write("Destiny: ");
                        Position destiny = Screen.readChessPosition().toPosition();
                        match.validateDestinyPosition(origin, destiny);

                        match.performMove(origin, destiny);
                    }
                    catch (BoardException e)
                    {
                        Console.WriteLine(e.Message);
                        Console.ReadLine();
                    }
                }

                Console.Clear();
                Screen.printMatch(match);
            }
            catch (BoardException e)
            {
                Console.WriteLine(e.Message);
            }


            Console.ReadLine();
        }
예제 #2
0
 public ChessPosition getDest(ChessPosition init)
 {
     if (bor.validPosition(init.ToPosition()) && bor.pieceExists(init.ToPosition()))
     {
         if (bor.piece(init.ToPosition()).color == currentPlayer)
         {
             Piece p1 = bor.piece(init.ToPosition());
             bool[,] possiblemvmnts = p1.possibleMovements();
             Screen.possiblePosition(bor, possiblemvmnts);
             Console.Write("Destiny: ");
             return(Screen.readChessPosition());
         }
         else
         {
             throw new BoardException("Invalid Play: it's not your turn");
         }
     }
     else
     {
         throw new BoardException("Invalid Output:Try again");
     }
 }
예제 #3
0
 private ChessPosition getInit()
 {
     Console.Write("Origin: ");
     return(Screen.readChessPosition());
 }