From 337dee61ada57e1d44079822abc437b8fc168843 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Thu, 24 Jul 2025 15:05:22 +0200 Subject: refactor: Extract closest --- physics/geometry.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'physics/geometry.go') diff --git a/physics/geometry.go b/physics/geometry.go index 1902fdf..9949466 100644 --- a/physics/geometry.go +++ b/physics/geometry.go @@ -13,7 +13,7 @@ func Distance(p1, p2 Point) float64 { } func Length(p Point) float64 { - return Distance(p, Point{X:0,Y:0}) + return Distance(p, Point{X: 0, Y: 0}) } func Normalize(p Point) Point { @@ -28,3 +28,19 @@ func AdjacentPoints(from Point) []Point { from.Add(Point{X: 100, Y: 0}), } } + +func Closest(from Point, candidates []Point, moveMap MoveMap) (Point, int) { + var closest Point + closestDistance := math.MaxInt + for _, dest := range candidates { + path, ok := SearchPath(from, dest, moveMap) + if !ok { + continue + } + if len(path) < closestDistance { + closest = dest + closestDistance = len(path) + } + } + return closest, closestDistance +} -- cgit v1.3