Исправление приоритета ночных барабанов

This commit is contained in:
VladislavOstapov 2023-02-06 19:22:55 +03:00
parent 885e64062e
commit 2297d7c7a9
2 changed files with 5 additions and 15 deletions

View File

@ -292,10 +292,6 @@ void scheduler_main()
scheduler_stage = 0; scheduler_stage = 0;
} }
} else { } else {
// а вот для режима двух роботов все интересно
// для каждого робота нужно получить свой список задач
// и надо еще сделать так, чтобы роботы не столкнулись
switch (scheduler_stage) { switch (scheduler_stage) {
case 0: case 0:
// посылаем робота 1 в жопу линии, если он не в жопе // посылаем робота 1 в жопу линии, если он не в жопе

16
utils.c
View File

@ -282,29 +282,23 @@ short get_operation_priority(short barrel_id) {
// если барабан в ночном режиме, то приоритет 1 самому левому, остальным 0 // если барабан в ночном режиме, то приоритет 1 самому левому, остальным 0
if (barrels[barrel_id].flags.is_night) { if (barrels[barrel_id].flags.is_night) {
char is_not_one = 0; short min_zone = barrels[barrel_id].zone;
char is_with_max_time = 1;
for (short i = 0; i < BARRELS_COUNT; i++) { for (short i = 0; i < BARRELS_COUNT; i++) {
if (i == barrel_id) { if (i == barrel_id) {
continue; continue;
} }
if (barrels[i].flags.is_exist && barrels[i].flags.is_night) { if (barrels[i].flags.is_exist && barrels[i].flags.is_night && barrels[i].flags.robot == 0 && !barrels[i].flags.is_up) {
if (can_move(barrels + i, ROBOT_NONE) >= 0) { if (can_move(barrels + i, ROBOT_NONE) >= 0) {
is_not_one = 1;
// чем больше у барабана время ожидания тем меньше у него число // чем больше у барабана время ожидания тем меньше у него число
if (barrels[i].software_timer < barrels[barrel_id].software_timer) { if (barrels[i].zone < min_zone) {
is_with_max_time = 0; min_zone = barrels[i].zone;
break;
} }
} }
} }
} }
if (is_not_one == 0) { return (min_zone == barrels[barrel_id].zone) ? 1 : 0;
return 1;
}
return is_with_max_time;
} }
// сделать приоритет на барабан, который больше всего ждет // сделать приоритет на барабан, который больше всего ждет