private void Move(IFigure figure, Field field) { var move = new Move(figure, field); if (PossibleMoves.Any(x => x.IsMoveTheSame(move))) { figure.Move(field); Console.WriteLine("your move: " + field.Horizontal, field.Vertical); } else { Console.WriteLine("Illegal move"); } }
public void Move(Tuple <int, int> move) { var row = move.Item1; var column = move.Item2; if (!PossibleMoves.Any(m => m.Item1 == row && m.Item2 == column)) { throw new InvalidOperationException(); } var pieceToTake = Board.GetPieceAtLocation(row, column); if (pieceToTake != null) { Board.Pieces.Remove(pieceToTake); } Row = row; Column = column; PostMove(); }
public bool IsPossibleEndPosition(BoardPosition startPos, BoardPosition endPos) { return(PossibleMoves.Any(m => m.StartPosition == startPos && m.EndPosition == endPos)); }
public bool IsPossibleStartPosition(BoardPosition startPos) { return(PossibleMoves.Any(m => m.StartPosition == startPos)); }