aoc24/util/vec.go
2024-12-16 22:10:13 +01:00

33 lines
487 B
Go

package util
type Vec2 struct {
X, Y int64
}
func (v Vec2) Mult(by int64) Vec2 {
return Vec2{v.X * by, v.Y * by}
}
func (v Vec2) Add(a Vec2) Vec2 {
return Vec2{v.X + a.X, v.Y + a.Y}
}
func (v Vec2) Eq(a Vec2) bool {
return v.X == a.X && v.Y == a.Y
}
func (v Vec2) Up() Vec2 {
return v.Add(Vec2{0, -1})
}
func (v Vec2) Down() Vec2 {
return v.Add(Vec2{0, 1})
}
func (v Vec2) Left() Vec2 {
return v.Add(Vec2{-1, 0})
}
func (v Vec2) Right() Vec2 {
return v.Add(Vec2{1, 0})
}