AGVScheduler scheduler; scheduler.assign_task_to_agv(tasks, agvs); while (!scheduler.all_tasks_assigned()) { for (int i = 0; i < agvs.size(); i++) { if (agvs[i].available_ == false) { moveAgvs(i); } } },將循環語句修改爲,所有的task的completed值為2,退出循環
时间: 2024-03-01 07:56:19 浏览: 57
可以在 while 循环中加一个判断语句,判断所有任务的 completed 值是否都为 2,如果是就退出循环。代码如下所示:
```
AGVScheduler scheduler;
scheduler.assign_task_to_agv(tasks, agvs);
while (!scheduler.all_tasks_assigned() || !scheduler.all_tasks_completed()) {
for (int i = 0; i < agvs.size(); i++) {
if (agvs[i].available_ == false) {
moveAgvs(i);
}
}
}
```
其中,all_tasks_completed() 函数用于判断是否所有任务都已经完成,即判断所有任务的 completed 值是否都为 2。这样程序就会一直运行,直到所有任务都被分配完成并且完成状态都为 2。
相关问题
AGVScheduler scheduler; scheduler.assign_task_to_agv(tasks, agvs); for (int i = 0; i < agvs.size(); i++) { if (agvs[i].available_ == false) { moveAgvs(i); } },添加代碼,一直在觸發
在上面的代码中加入一个 while 循环,使得程序一直运行,直到所有任务都被分配完成。代码如下所示:
```
AGVScheduler scheduler;
scheduler.assign_task_to_agv(tasks, agvs);
while (!scheduler.all_tasks_assigned()) {
for (int i = 0; i < agvs.size(); i++) {
if (agvs[i].available_ == false) {
moveAgvs(i);
}
}
}
```
其中,all_tasks_assigned() 函数用于判断是否所有任务都已经被分配完成。这样程序就会一直运行,直到所有任务都被分配完成。
AGVScheduler scheduler; scheduler.assign_task_to_agv(tasks, agvs); for (int i = 0; i < agvs.size(); i++) { moveAgvs(i); },增加函數,直到所有的任務都已經完成
您的问题似乎是一段代码,而不是一个问题。不过我可以看出这是一个AGV调度器,用于将任务分配给AGV并控制它们完成任务。如果您想让所有任务都完成后停止调度器,您可以使用一个while循环,检查任务是否全部完成,然后再退出循环。
示例代码:
```
AGVScheduler scheduler;
scheduler.assign_task_to_agv(tasks, agvs);
bool all_tasks_completed = false;
while (!all_tasks_completed) {
all_tasks_completed = true;
for (int i = 0; i < agvs.size(); i++) {
moveAgvs(i);
if (!agvs[i].isTaskCompleted()) {
all_tasks_completed = false;
}
}
}
```
这段代码将不断循环,直到所有任务都完成并退出循环。
阅读全文