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