for (int i = 0; i < agvs.size(); i++) { moveAgvs(i); },修改代碼為:黨agv對應的task的completed都不爲2時,觸發此函數
时间: 2024-01-29 17:02:42 浏览: 19
您可以将原来的代码改为以下形式来实现您的要求:
```
for (int i = 0; i < agvs.size(); i++) {
if (agvs[i].getCurrentTask().getCompleted() != 2) {
moveAgvs(i);
}
}
```
这样会先判断当前 AGV 对应的 task 的 completed 是否为 2,如果不是就触发 moveAgvs() 函数。
相关问题
for (int i = 0; i < agvs.size(); i++) { moveAgvs(i); },添加代碼,如果agvs的available值是1,則moveagvs(I)
可以在原代码的基础上加一个判断语句,判断 agvs[i] 的 available 值是否为1,如果是就执行 moveAgvs(i) 函数。代码如下所示:
```
for (int i = 0; i < agvs.size(); i++) {
if (agvs[i].available == 1) {
moveAgvs(i);
}
}
```
这样就可以只移动可用的 agvs 了。
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;
}
}
}
```
这段代码将不断循环,直到所有任务都完成并退出循环。