设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6590|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false( ?( Y5 n# A. d5 f8 L
to go" ]3 F% S( J) `4 c# V8 L% X8 p
if not any? turtles with [not stopped? ] [ stop ]  ( [9 ~, b% Q$ ?4 R4 _8 d5 W
ask turtles with [remainder who 5 = 0] [0 o2 s$ H0 G  I9 c" e; G% q
set close-mates  (turtles with [self != myself])with[5 S2 V" a- x+ D* e1 i; R
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ! }& q( O! i' o
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
: M% X3 a0 k3 C  E4 i3 R. t7 nand remainder who 5 = 0
6 C* S0 u3 j1 e) V& a]                   0 r8 {: A6 Y: e; J% i$ t# A0 c2 L3 O! N
ifelse any? close-mates 4 |' k5 P+ S! H' V* j, W
[                                                                3 c' w8 Z8 G  m# X9 C; ^1 j
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
/ i) c. m$ N0 @6 A! J1 R' Oface closest-one
' n( U/ Q4 w' ^8 [: C1 y' ?' }rt 180  A5 F6 w0 Q& {. |. _
fd random-float step-size7 f) B5 `3 Y& Y0 V) N8 E
avoid-walls8 e& |$ j; n1 d" ^' {2 E! S/ Y8 G
set stopped? false]
+ }% J- n; e1 v1 |! Q9 o! b[set stopped? true]
/ Y: P# I3 k8 s3 Y2 \6 l- D2 s, o]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
2 }" ?- d. d, B' F, e, wif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]# ?) L# y- k9 L" v( s
则可以顺利的终止go程序5 V& m- F; o/ Q
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-26 23:26 , Processed in 0.015370 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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