```python
def live_count(neighbours: list) -> int:
    """Return how many of the given neighbours are alive."""
    return sum(1 for n in neighbours if n)


def live_next(alive: bool, neighbours: list) -> bool:
    """Determine if the cell is alive in the next round based on current state and neighbours."""
    count = live_count(neighbours)
    if alive:
        return count in (2, 3)
    else:
        return count == 3
```