package two import ( "strings" "github.com/onyx-and-iris/aoc2024/day-06/internal/util" ) type graph struct { startPoint point data []string } func newGraph(startPoint point, data []string) *graph { return &graph{startPoint: startPoint, data: data} } 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') { g.data[loc.y] = util.ReplaceAtIndex(g.data[loc.y], '+', loc.x) } } return g.String() }