问题描述
我们是一群没有太多编程经验的学生。我们的任务是模拟一个循环过程,其中门在铣床上经历至少 3 个加工步骤。我们希望优先考虑产品,例如如果在传送带 1 上有一扇厚度为 43 毫米(门上方的红色数字)的门,则其上不应有其他厚度的门。我们的想法是使用一个等待块,它应该只在以下情况下释放下一个代理: 厚度相同或传送带 1 为空 为此,我们在图片中使用了以下代码。
但是代码:wait.free(agent.door);当传送带 1 上的当前代理离开它时不起作用。在进行模拟时,我们不会收到错误代码。欢迎其他想法。
最好的问候
解决方法
当传送带1上的当前代理离开它时,放置相同的代码wait.free(agent)
退出时添加代码
if(wait.size()>0) {
AgentType x=findFirst(wait,a->a.thickness==conveyorThickness);
if(x!=null)
wait.free(x);
}