设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3858|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false' I1 O; F$ G3 k6 T! }. N
to go
; b) J) Y8 i& I9 }if not any? turtles with [not stopped? ] [ stop ]  
' k" U' W4 X; Wask turtles with [remainder who 5 = 0] [, E0 u$ K# |3 D: @6 ?
set close-mates  (turtles with [self != myself])with[
. U( n2 }2 [% W9 O& h) g0 |(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
; x3 X! O& W( |- l" m/ n. C# I7 ?% Band (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) " H' N! K3 ]5 X) |5 K
and remainder who 5 = 0 6 i8 |7 v0 a3 v
]                  
/ p) W- v. t4 Q; D) ?# ^: P, |ifelse any? close-mates
% |& l8 x( p0 X6 k[                                                               
$ O* g5 [0 S% nset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
& w+ c+ F) p5 K& W& V/ L9 Vface closest-one% `) \; s; X0 h0 W+ [
rt 180, i1 _  [7 p' s1 l. l. f  _. o
fd random-float step-size  \6 D8 M9 ^8 p2 [6 T3 F
avoid-walls
8 V3 R0 p4 q9 rset stopped? false]
( C* n! Y' h' Q[set stopped? true]
* j3 }  ~& D2 x: f' v* `+ f7 D2 s]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成8 @; e8 {* o. m& o) m3 T
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]% |6 }# ~/ y+ G% {
则可以顺利的终止go程序
7 f; I  k2 J: |; Z但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-21 15:38 , Processed in 0.014844 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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