示例#1
0
        public static Position GetPositionFrom_User(Game game)
        {
            int      x = -1, y = -1;
            Board    chessboard = game.Chessboard;
            Position position;

            while (true)
            {
                Console.Write("From:");
                var PositionFrom = Console.ReadLine();

                x = Char.IsDigit(PositionFrom[0]) ? (int)Char.GetNumericValue(PositionFrom[0]) - 1 : -1;
                y = Board.GetLetterMap(PositionFrom[1]);

                position = new Position(x, y);

                if (!chessboard.ExistFigure(position))
                {
                    Console.WriteLine("No figure in this possition. Please enter again.");
                    continue;
                }
                else if (chessboard.GetFigureFromPosition(position).Color != game.CurrentPlayer)
                {
                    Console.WriteLine("Can't move a {0} piece as the {1} player. Please enter again.", chessboard.GetFigureFromPosition(position).Color, game.CurrentPlayer);
                    continue;
                }
                else
                {
                    break;
                }
            }

            return(position);
        }