设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5697|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
1 ^; ]: `9 }$ V% N" J0 Oto go
2 D( o/ I8 t1 a" n" E4 a. fif not any? turtles with [not stopped? ] [ stop ]  
: b8 C. k: U. e0 `ask turtles with [remainder who 5 = 0] [) T" H" a+ W3 C8 L
set close-mates  (turtles with [self != myself])with[
" t  }0 q+ K3 A) v. I(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
7 Y2 ~2 ?/ z, }  H7 t8 b4 l  Iand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
( J; d2 w1 G- |6 Kand remainder who 5 = 0 % m& p9 e; \. K! A. C
]                  
9 y' H, P9 D+ i! c. wifelse any? close-mates
; {2 S/ I6 t* ?[                                                                3 n/ E+ i0 R: m1 N' g- G
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]% O% W. s, K2 T7 s2 U+ p# _, I1 k
face closest-one
* B" l$ x6 O4 r, _rt 180
# J; G4 T5 |. p  [% S3 N  S. d% [fd random-float step-size+ F* u: w! ?( W) O$ @1 u
avoid-walls
/ l; _5 b! p4 f" ~1 ?# c# bset stopped? false]
$ ~8 [. Q8 k2 ?& I[set stopped? true] 4 J* K, N- n, \
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成  z; B6 F) G, ~+ e' b
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]+ T- ~" g: V4 d- q* y
则可以顺利的终止go程序
+ ^* W4 T" m# Q: l+ _- _但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-7 04:45 , Processed in 0.019298 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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