设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6193|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false8 N; p+ T/ `0 A- e7 v
to go& S  f: ]: w$ m1 ~
if not any? turtles with [not stopped? ] [ stop ]  / C& c) Y( S, m$ f- t
ask turtles with [remainder who 5 = 0] [8 ?+ X$ A$ }. ]
set close-mates  (turtles with [self != myself])with[
2 `5 \' x. a! F( M$ \! ?(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ! c- n+ Q  h. x) ]; k: J
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) ' b9 A; I( b* s$ |0 [1 f, I- g
and remainder who 5 = 0
% t/ o% F; l: d/ K! w7 Y]                   & P# W0 Z" m# D5 l8 m+ z
ifelse any? close-mates + `( }8 i8 l1 _* H  L
[                                                               
0 H+ |9 v8 {1 R. J2 d& |$ |set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
  k8 Q8 H4 O5 q6 tface closest-one
' r) B' g/ F" }2 z+ }rt 1800 r* o* {0 c, @
fd random-float step-size
# c5 I# T1 H2 ?/ w0 }3 T# N* mavoid-walls
2 ~2 x3 @* p4 H. W& L! yset stopped? false]
. r6 l4 b1 a& J0 B[set stopped? true] % D2 R5 h  p0 s/ n- a" \! ~
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
$ ^" T4 a7 S1 Q, _. Rif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]/ i! v' }3 V: s: p( i" V
则可以顺利的终止go程序
$ H' D* F) L1 h# O$ h. C% c/ {3 f但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-26 03:54 , Processed in 0.018885 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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