clearLines method

(BoardState, int) clearLines()

Returns a new board with completed rows cleared, and the count cleared.

Implementation

(BoardState, int) clearLines() {
  final remaining = grid.where((row) => row.any((c) => !c.filled)).toList();
  final cleared = rows - remaining.length;
  final newRows = List.generate(
    cleared,
    (_) => List.generate(cols, (_) => const Cell.empty()),
  );
  final newGrid = [...newRows, ...remaining];
  return (BoardState(rows: rows, cols: cols, grid: newGrid), cleared);
}