percolates() optimized - isOpen && isFull