From fa75aec6daaa4151c793ff6b2076c25780a899ab Mon Sep 17 00:00:00 2001 From: emakarov Date: Sat, 30 May 2026 16:40:32 +0300 Subject: [PATCH] =?UTF-8?q?HW=20Select=20Closest=20Targets=20@Evgen11=5FSt?= =?UTF-8?q?=20=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=9C=D0=B0?= =?UTF-8?q?=D0=BA=D0=B0=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnitBrains/Player/SecondUnitBrain.cs | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index c2c80e989..97f37b5c1 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -1,5 +1,6 @@ -using System.Collections.Generic; -using Model.Runtime.Projectiles; +using Model.Runtime.Projectiles; +using System.Collections.Generic; +using System.Linq; using UnityEngine; namespace UnitBrains.Player @@ -34,12 +35,27 @@ protected override List SelectTargets() /////////////////////////////////////// // Homework 1.4 (1st block, 4rd module) /////////////////////////////////////// - List result = GetReachableTargets(); - while (result.Count > 1) + List reachableTargets = GetReachableTargets(); + + if (reachableTargets.Count == 0) return reachableTargets; + + Vector2Int nearestToBaseTarget = reachableTargets.FirstOrDefault(); + + foreach (Vector2Int target in reachableTargets) { - result.RemoveAt(result.Count - 1); + if (DistanceToOwnBase(target) < DistanceToOwnBase(nearestToBaseTarget)) + { + nearestToBaseTarget = target; + } } - return result; + + while (reachableTargets.Count > 0) + { + reachableTargets.RemoveAt(reachableTargets.Count - 1); + } + reachableTargets.Add(nearestToBaseTarget); + + return reachableTargets; /////////////////////////////////////// }