设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6426|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false+ ~: G( U5 R8 j3 l/ Y" y! I
to go8 M8 z5 n0 ]2 O9 N( V
if not any? turtles with [not stopped? ] [ stop ]  $ x9 S$ O6 l) u/ f; Y
ask turtles with [remainder who 5 = 0] [
5 T, }2 V( P2 V* wset close-mates  (turtles with [self != myself])with[: ^; A9 y* ]% ^) T6 L
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
) ~) t1 P" e  sand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) * V2 s, J& S% a' x
and remainder who 5 = 0
/ V2 A: n) u8 f]                  
8 Y/ y9 g, b4 \ifelse any? close-mates
7 t" y! F6 u/ D! ^7 S! S. k1 [; Q[                                                                ; N& T) S* R* @7 \$ x, _
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
/ p3 Y" y- T6 F& a) Uface closest-one/ B5 X# H% K) N( |# Y
rt 180
# G! m( F& }0 I$ S& g. @fd random-float step-size) X1 H/ A4 t! b1 W
avoid-walls. V* N& r, M$ J+ d
set stopped? false]
+ e8 R( H: k0 m$ b! u6 k[set stopped? true] ' t! M- L+ L* n4 Q+ }. I
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成7 f7 d* o  M# n# H7 s/ ^' ~
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]& A+ ^' L: @8 t6 c2 B
则可以顺利的终止go程序
6 B: |. d) _: r, F但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-29 21:10 , Processed in 0.014329 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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