我目前正在尝试对此处发现的城镇和交通人群进行模拟,以支持自动驾驶AI汽车,可以在此处找到。
我目前遇到的问题是,当交通信号灯的信号灯从红色直变为绿色时,我想在仿真中添加黄色,以便信号灯从红色变为黄色,然后变为绿色。我有,但似乎只是冻结在黄色上。
to change-color [lights ]
ask lights [
ifelse color = red [set color yellow] [set color red]
]
end
to yellow-color [lights]
ask lights[
ifelse color = yellow [set color green] [set color yellow]
]
end
to control-traffic-lights
if ticks mod (100) = 0 [change-color lightsR change-color lightsL change-color lightsU change-color lightsD ]
if ticks mod (100) = 0 [yellow-color lightsR yellow-color lightsL yellow-color lightsU yellow-color lightsD ]
end
请任何帮助,会有所帮助,谢谢。
我在下面重新格式化了您的控制交通灯代码
to control-traffic-lights
if ticks mod (100) = 0
[ change-color lightsR ; red to yellow; others to red
change-color lightsL ; red to yellow; others to red
change-color lightsU ; red to yellow; others to red
change-color lightsD ; red to yellow; others to red
yellow-color lightsR ; yellow to green; others to yellow
yellow-color lightsL ; yellow to green; others to yellow
yellow-color lightsU ; yellow to green; others to yellow
yellow-color lightsD ; yellow to green; others to yellow
]
end
想象一下,您打了一个相关的滴答声(每100个),从lightsR开始-红色的任何东西在第一行变成黄色,在第五行变成绿色。如果输入时不是红色,则它们在第一行变成红色,在第五行变成黄色。
所有四种灯都遵循相同的逻辑。也就是说,基于灯光离开更改颜色程序的颜色,黄色程序将立即应用于灯光。