Рефакторинг, добавление документации
This commit is contained in:
11
scheduler.c
11
scheduler.c
@@ -4,7 +4,6 @@
|
||||
|
||||
|
||||
struct scheduler_task {
|
||||
short start_zone; // стартовая зона
|
||||
short dest_zone; // конечная зона
|
||||
short priority; // приоритет, чем больше тем выше, по умолчанию 0
|
||||
};
|
||||
@@ -28,7 +27,7 @@ short scheduler_find_task(const struct scheduler_task* tasks, const short curr_p
|
||||
// ищем первый барабан слева, и ближайший справа
|
||||
short left = -1, right = -1;
|
||||
for (short i = 0; i < BARRELS_COUNT; i++) {
|
||||
short target = tasks[i].start_zone; // фактическая зона откуда тащить барабан
|
||||
short target = barrels[i].zone; // фактическая зона откуда тащить барабан
|
||||
if (tasks[i].dest_zone < 0) {
|
||||
continue;
|
||||
}
|
||||
@@ -86,8 +85,6 @@ void schedule_one_robot(const short robot_id) {
|
||||
struct scheduler_task tasks[BARRELS_COUNT];
|
||||
|
||||
for (short i = 0; i < BARRELS_COUNT; i++) {
|
||||
// для каждой задачи:
|
||||
tasks[i].start_zone = barrels[i].zone;
|
||||
// определяем можно ли ее выполнить и что вообще нужно выполнить
|
||||
tasks[i].dest_zone = can_move(barrels + i, robot_id);
|
||||
if (tasks[i].dest_zone >= 0) {
|
||||
@@ -108,11 +105,9 @@ void schedule_one_robot(const short robot_id) {
|
||||
|
||||
if (target_task >= 0) {
|
||||
if (robot_id == ROBOT_1) {
|
||||
create_operation(&robot1_code, target_task, tasks[target_task].start_zone, tasks[target_task].dest_zone,
|
||||
current_zone, robot_id);
|
||||
create_operation(target_task, barrels[target_task].zone, tasks[target_task].dest_zone, robot_id);
|
||||
} else {
|
||||
create_operation(&robot2_code, target_task, tasks[target_task].start_zone, tasks[target_task].dest_zone,
|
||||
current_zone, robot_id);
|
||||
create_operation(target_task, barrels[target_task].zone, tasks[target_task].dest_zone, robot_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user