public MoveOutcome TryMove(Move move) { Piece piece = board[move.CurrentRow, move.CurrentCol]; if (piece.CanMoveTo(move, this)) { MovePiece(move); return(MoveOutcome.Success); } return(MoveOutcome.Illegal); }