This commit is contained in:
Simon Ziegler
2025-12-04 15:13:42 +01:00
parent e34c4084c6
commit 642045825f
9 changed files with 259 additions and 9 deletions

66
04/main.go Normal file
View File

@@ -0,0 +1,66 @@
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)
}