设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6270|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
9 J0 J& g0 c* I: j" ]to go/ w" T! f2 j$ _% K, i
if not any? turtles with [not stopped? ] [ stop ]  " |8 M+ `0 @9 i% z, X
ask turtles with [remainder who 5 = 0] [
- F9 F/ z4 x4 l, R. z& i" |set close-mates  (turtles with [self != myself])with[4 F. y5 r- F3 }, Z9 e
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
1 L  h5 q6 t" V7 Dand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
. [& r( j' z2 u8 R& `# V* X8 d3 Gand remainder who 5 = 0 " S7 D$ z8 j" P" j3 f
]                  
# ?$ r) G" B/ Y( M# E# O3 tifelse any? close-mates ( P/ N, F  W* j
[                                                               
2 P: R1 _( w9 D8 B% e1 nset closest-one min-one-of (close-mates with[self != myself] )[distance myself]6 ~) X* a* _# R, g
face closest-one
$ ^1 _" i8 y& E7 S" K5 n' K5 c) S2 Xrt 180
6 W7 q# s, ^& T- l+ x. F( vfd random-float step-size" C7 B/ G$ J. n$ [
avoid-walls
3 }+ J7 R( r2 U; }set stopped? false]' v- Z. E' U$ `7 V# A. `& P) n5 W
[set stopped? true] % D9 \5 d- U8 _" T2 O& C% p
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成1 L/ B& C( q1 K4 `: S' W5 d& {
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
" N( H4 m7 v- y则可以顺利的终止go程序) b3 [$ ]* o3 `' y3 h9 w
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-11 02:38 , Processed in 0.021648 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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