/// <summary> /// Comprueba si está vacía el camino entre una fila y una columna /// </summary> internal bool IsEmpty(CellModel start, CellModel end) { int verticalSign = -1 * Math.Sign(start.Row - end.Row); int horizontalSign = -1 * Math.Sign(start.Column - end.Column); int row, column; // Comprueba el recorrido row = start.Row; column = start.Column; do { // Comprueba si la celda está ocupada saltándose la primera celda ... if ((row != start.Row || column != start.Column) && !Pieces.IsEmpty(new CellModel(row, column))) { return(false); } // Incrementa fila / columna row += verticalSign; column += horizontalSign; }while (row != end.Row || column != end.Column); // Si ha llegado hasta aquí es porque las celdas intermedias estaban vacías return(true); }