aoc2024/day-06/internal/two/graph.go

33 lines
572 B
Go
Raw Normal View History

2024-12-06 20:01:17 +00:00
package two
import (
"strings"
)
type graph struct {
startPoint point
data []string
2024-12-06 20:01:17 +00:00
}
func newGraph(startPoint point, data []string) *graph {
return &graph{startPoint: startPoint, data: data}
2024-12-06 20:01:17 +00:00
}
func (g *graph) String() string {
return strings.Join(g.data, "\n")
}
func (g *graph) valueAt(x, y int) rune {
return rune(g.data[y][x])
}
func (g *graph) trace(visited map[point]struct{}) string {
for loc := range visited {
if !(rune(g.data[loc.y][loc.x]) == 'O') {
2025-01-07 17:23:11 +00:00
g.data[loc.y] = replaceAtIndex(g.data[loc.y], '+', loc.x)
2024-12-06 20:01:17 +00:00
}
}
return g.String()
}