如何在Netlogo中更改灯光品种的颜色

问题描述 投票:0回答:1

我目前正在尝试对此处发现的城镇和交通人群进行模拟,以支持自动驾驶AI汽车,可以在此处找到。

http://www.netlogoweb.org/launch#http://ccl.northwestern.edu/netlogo/community/Town%20-%20Traffic%20&%20Crowd%20simulation.nlogo

我目前遇到的问题是,当交通信号灯的信号灯从红色直变为绿色时,我想在仿真中添加黄色,以便信号灯从红色变为黄色,然后变为绿色。我有,但似乎只是冻结在黄色上。


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

请任何帮助,会有所帮助,谢谢。

netlogo
1个回答
0
投票

我在下面重新格式化了您的控制交通灯代码

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开始-红色的任何东西在第一行变成黄色,在第五行变成绿色。如果输入时不是红色,则它们在第一行变成红色,在第五行变成黄色。

所有四种灯都遵循相同的逻辑。也就是说,基于灯光离开更改颜色程序的颜色,黄色程序将立即应用于灯光。

© www.soinside.com 2019 - 2024. All rights reserved.