设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5788|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false* N/ M$ e7 y7 V4 Q& L! r
to go
  K) Z3 S0 B5 i3 b# r6 l! i& O& bif not any? turtles with [not stopped? ] [ stop ]  , O0 C3 H$ t6 \2 X5 N1 a7 y1 Y$ b0 p
ask turtles with [remainder who 5 = 0] [
  C( Z8 _$ u% z8 aset close-mates  (turtles with [self != myself])with[* ^' x  I3 n1 O1 G; k# d
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 5 H: u1 N( L1 \+ V# X0 }3 K
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) : I9 H5 `$ G* F
and remainder who 5 = 0 4 y* _. H2 R9 a" F: y, g% D  ~3 f
]                  
( t; t! t5 d9 |+ Tifelse any? close-mates
* _9 h4 j" {! P! g+ L[                                                                9 @5 @1 [: k  k& B" P2 E
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
% d7 D- w. p: s- U' L5 rface closest-one+ ~0 ]! f! F7 i( v& d
rt 180
4 E7 i2 g& n# x1 I: u9 \- b* ofd random-float step-size) \/ j3 b$ k1 t: P
avoid-walls9 Y4 k: u1 T6 d* z
set stopped? false]
: j; ], b4 t" U% n- s# p[set stopped? true] & u% T0 i  R1 n. R' Y8 d( a: f
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
( ?3 B- X% N8 t+ Qif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
% `9 L2 i3 O+ N# e4 A: S0 ^则可以顺利的终止go程序
, R2 m3 c( X3 R* k但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-27 10:02 , Processed in 0.017330 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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