From 2e0d969ac0a60e59e055f84e4cf5caa234a6efbc Mon Sep 17 00:00:00 2001 From: KonSyi Date: Wed, 6 May 2026 19:08:14 +0300 Subject: [PATCH] =?UTF-8?q?HW=20Select=20Closest=20Targets=20/=20=D0=A2?= =?UTF-8?q?=D0=B8=D0=BC=D0=BE=D1=84=D0=B5=D0=B9=20=D0=98=D1=88=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnitBrains/Player/SecondUnitBrain.cs | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index c2c80e989..4fc0d208c 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -35,10 +35,27 @@ protected override List SelectTargets() // Homework 1.4 (1st block, 4rd module) /////////////////////////////////////// List result = GetReachableTargets(); - while (result.Count > 1) + + float minDistance = float.MaxValue; + Vector2Int nearestTarget = Vector2Int.zero; + bool targetFound = false; + + foreach (Vector2Int target in result) { - result.RemoveAt(result.Count - 1); + float distance = DistanceToOwnBase(target); + + if (distance < minDistance) + { + minDistance = distance; + nearestTarget = target; + targetFound = true; + } } + + result.Clear(); + + if (targetFound) result.Add(nearestTarget); + return result; /////////////////////////////////////// }