Исправление технологического пути барабана в ночном режиме
This commit is contained in:
27
utils.c
27
utils.c
@@ -41,6 +41,9 @@ short get_first_night_zone() {
|
||||
if (barrels[i].flags.is_exist && barrels[i].zone == NIGHT_ZONES[nz] && barrels[i].flags.is_night) {
|
||||
found = 1;
|
||||
}
|
||||
if (NIGHT_ZONES[nz] == ZONE_LOAD_1 && barrels[i].flags.is_exist && barrels[i].zone == NIGHT_ZONES[nz]) {
|
||||
found = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (found == 0) {
|
||||
@@ -52,9 +55,27 @@ short get_first_night_zone() {
|
||||
}
|
||||
|
||||
|
||||
short _get_dest_zone(struct barrel *bar) {
|
||||
short _get_dest_zone(struct barrel *bar, char robot_id) {
|
||||
if (bar->flags.is_night) {
|
||||
return ZONE_LOAD_1;
|
||||
if (one_robot_mode) {
|
||||
return ZONE_LOAD_1;
|
||||
} else {
|
||||
if (robot_id == ROBOT_1) {
|
||||
// робот 1 может выкидывать барабаны только до зоны обмена
|
||||
if (bar->zone >= hla_exchange_zone) {
|
||||
return hla_exchange_zone;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
// робот 2 всегда кидает барабаны в загрузку 1, но только дальше зоны обмена он не имеет права брать
|
||||
if (bar->zone <= hla_exchange_zone) {
|
||||
return ZONE_LOAD_1;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// если это зона обмена и барабан пустой
|
||||
@@ -231,7 +252,7 @@ short can_move(struct barrel *bar, char robot_id) {
|
||||
}
|
||||
|
||||
// дальше нужно проверить, что можно передвигать бочку
|
||||
short dest_zone = _get_dest_zone(bar);
|
||||
short dest_zone = _get_dest_zone(bar, robot_id);
|
||||
|
||||
if (zone_is_busy(dest_zone)) {
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user