44 lines
664 B
Go
44 lines
664 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
h "git.bullercodeworks.com/brian/adventofcode/helpers"
|
|
)
|
|
|
|
const (
|
|
N = iota
|
|
E
|
|
S
|
|
W
|
|
)
|
|
|
|
func main() {
|
|
fmt.Println("# Day 12")
|
|
inp := h.StdinToStringSlice()
|
|
part1(inp)
|
|
part2(inp)
|
|
}
|
|
|
|
func part1(inp []string) {
|
|
s := Ship{
|
|
Pos: h.Coordinate{X: 0, Y: 0},
|
|
Dir: E,
|
|
}
|
|
s.Navigate(inp)
|
|
fmt.Println("## Part 1")
|
|
fmt.Println(s.Pos.Distance(h.Coordinate{X: 0, Y: 0}))
|
|
}
|
|
|
|
func part2(inp []string) {
|
|
s := Ship{
|
|
Pos: h.Coordinate{X: 0, Y: 0},
|
|
Dir: E,
|
|
Waypoint: h.Coordinate{X: 10, Y: -1},
|
|
ByWaypoint: true,
|
|
}
|
|
s.Navigate(inp)
|
|
fmt.Println("## Part 2")
|
|
fmt.Println(s.Pos.Distance(h.Coordinate{X: 0, Y: 0}))
|
|
}
|