package main import ( "fmt" "git.z1glr.de/advent-of-code-2025/pkg/aoc" ) func testGrid(g *[][]string) int { rollCount := 0 for yy, row := range *g { for xx, roll := range row { if roll == "@" { freeCount := 0 for x := xx - 1; x <= xx+1; x++ { for y := yy - 1; y <= yy+1; y++ { if x < 0 || y < 0 || x >= len(row) || y >= len(*g) { freeCount++ } else if (*g)[y][x] == "." { freeCount++ } } } if freeCount > 4 { rollCount++ (*g)[yy][xx] = "x" } } } } for yy, row := range *g { for xx, roll := range row { if roll != "@" { (*g)[yy][xx] = "." } else { fmt.Print() } } } return rollCount } func main() { lines := aoc.ReadFileRows(false) grid := aoc.RowsToGrid(lines) rollCount := testGrid(&grid) fmt.Println(rollCount) for { if newCount := testGrid(&grid); newCount == 0 { break } else { rollCount += newCount } } fmt.Println(rollCount) }