设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6199|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false' G. g1 H* Q9 C& j! B( L$ k; t
to go
  D; V; {- i5 p* Uif not any? turtles with [not stopped? ] [ stop ]  
: t* o, C/ [! S  l; b! {; Dask turtles with [remainder who 5 = 0] [
4 A) A2 t$ m5 w! N5 [/ gset close-mates  (turtles with [self != myself])with[
0 ]) \1 |5 [( w! i- h# F(abs(xcor -(xcor-of myself)) < X-Dist + Wid )   e# E1 j2 w% K& }, m1 n) Z
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
+ N- w+ k3 G  i1 J6 zand remainder who 5 = 0
+ @3 X9 H5 Q$ i]                   : T1 G8 O/ B" ^6 C
ifelse any? close-mates " F6 \% ~  r1 i9 z0 w$ J
[                                                                # m( l) i" `, @; Z9 t5 v
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
7 `$ ]! |2 _/ Q; Vface closest-one! |1 y: r0 S& N
rt 180! k7 p, s% M4 L% u0 V  r$ ]
fd random-float step-size; _7 \! X* Z' ?. O: l. t; z
avoid-walls
! C# @$ ]6 q  n# ~0 ?; d( rset stopped? false]/ i" q; K7 m$ ?% \6 n
[set stopped? true]
, T, \1 g. U2 @8 y2 ~1 H]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
$ m5 J' ]$ n, P( gif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
! X5 }- H1 F% R( G/ Y则可以顺利的终止go程序2 m: Z( m# `7 ~$ f1 }0 r; k
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-28 08:37 , Processed in 0.013874 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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