etamina 发表于 2008-4-12 15:04:09

代码逻辑问题

在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
to go
if not any? turtles with [ stop ]
ask turtles with [
set close-mates(turtles with )with[
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
and remainder who 5 = 0
]                  
ifelse any? close-mates
[                                                               
set closest-one min-one-of (close-mates with )
face closest-one
rt 180
fd random-float step-size
avoid-walls
set stopped? false]

]

etamina 发表于 2008-4-12 15:05:12

是逻辑有问题吗?

etamina 发表于 2008-5-2 17:02:02

上述问题,如果最先的if语句改成
if not many? turtles with with [ not stopped?][ stop]
则可以顺利的终止go程序
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
页: [1]
查看完整版本: 代码逻辑问题