设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5699|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false- c8 l$ H) b! ?. ]7 {
to go
8 v. k1 `) J$ K% p8 v' g/ bif not any? turtles with [not stopped? ] [ stop ]  2 F2 m  f; _6 Z2 v5 t9 V7 D( y( T
ask turtles with [remainder who 5 = 0] [  z/ r8 m% g) s' s
set close-mates  (turtles with [self != myself])with[
; j8 g; A, Z7 C; m(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) : O7 ~) }3 d/ k" |/ n
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 4 }; d) R% j5 z. |8 }- \/ a
and remainder who 5 = 0
: b: b  _0 Y( Q5 s8 []                   0 S# z0 Y8 S. g9 J# q# ~
ifelse any? close-mates
$ `4 Q9 S. U7 c[                                                               
& }( p# ]( W0 ~7 Hset closest-one min-one-of (close-mates with[self != myself] )[distance myself]$ s1 o; d# G& I* t# ?; U# ~
face closest-one* u! a2 l9 N6 w/ ~% d9 ]
rt 180
& h0 i6 n+ _: r; L  t4 O2 bfd random-float step-size
& ?( W6 z' J# K' R% E' Favoid-walls
* a% x8 f3 m) t& [/ Uset stopped? false]$ r$ e# \1 a; z% o% c, x
[set stopped? true] 7 u& p- D1 a- R) H, [) N" E
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
' y% ?% G: N* ^if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
- v7 ^! m( y( ]' y) N" o则可以顺利的终止go程序9 n9 z6 {3 J2 F6 S; E5 S6 n" n
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-3-7 15:43 , Processed in 0.018674 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表