From cd62b41e0b8b4f35f3b1dc3b68da1df186312c4b Mon Sep 17 00:00:00 2001 From: VladislavOstapov Date: Mon, 20 Feb 2023 15:10:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=BE=D1=87=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=B1=D0=B0=D1=80=D0=B0=D0=B1=D0=B0=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B5=20=D0=B5=D1=81?= =?UTF-8?q?=D0=BB=D0=B8=20=D0=BD=D1=83=D0=B6=D0=BD=D0=B0=D1=8F=20=D0=BD?= =?UTF-8?q?=D0=BE=D1=87=D0=BD=D0=B0=D1=8F=20=D0=B7=D0=BE=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B5=D1=89=D0=B5=20=D1=82=D1=80=D0=B5=D0=B1=D1=83=D0=B5=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D1=80=D1=83=D0=B3?= =?UTF-8?q?=D0=B8=D1=85=20=D0=B1=D0=B0=D1=80=D0=B0=D0=B1=D0=B0=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/utils.c b/utils.c index ea5b4c1..fae0c19 100644 --- a/utils.c +++ b/utils.c @@ -33,6 +33,17 @@ char zone_is_busy(short zone) { short get_first_night_zone() { + short min_normal_barrel = -1; + for (short i = 0; i < BARRELS_COUNT; i++) { + // ищем все не ночные, не пустые, и которые внизу барабаны + if (barrels[i].flags.is_exist && !barrels[i].flags.is_empty && !barrels[i].flags.is_night && !barrels[i].flags.is_up) { + // нужен барабан, у которого нет + if (min_normal_barrel < 0 || barrels[i].zone < min_normal_barrel) { + min_normal_barrel = barrels[i].zone; + } + } + } + // всего зон, куда можно сныкать барабаны (всего 9 мест: загрузка 1 и 8 промывок) for (short nz = 0; nz < 9; nz++) { char found = 0; @@ -46,7 +57,11 @@ short get_first_night_zone() { } if (found == 0) { - return NIGHT_ZONES[nz]; + if (min_normal_barrel < 0 || NIGHT_ZONES[nz] < min_normal_barrel) { + return NIGHT_ZONES[nz]; + } else { + break; + } } }