设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6414|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
8 C7 u1 r# x. Yto go: f" N: a$ _7 O1 `% Z# G3 k
if not any? turtles with [not stopped? ] [ stop ]  
* y5 w" W8 s( W2 A$ H& [' a" R+ Oask turtles with [remainder who 5 = 0] [
- Q- s+ k( t! Z0 I0 m. ]set close-mates  (turtles with [self != myself])with[
, _& M* P7 ?3 l% Y+ z" ]4 P1 K(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) " u4 q) H1 J, Z% F+ r
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
* B% ~$ ]* i% }1 G+ ~0 Q9 r4 Pand remainder who 5 = 0
% C5 G4 Z! c3 q* W0 x# b$ u]                  
/ F) |2 L* K: P" N2 iifelse any? close-mates : _3 L1 K  z7 P- V
[                                                               
7 w% R4 j# {* x3 U% i+ Bset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
8 A5 i; v) d( `6 Uface closest-one
) O! r, B) _9 n0 B: w) N) I9 u1 Yrt 180/ I8 y' Z% _0 H/ e
fd random-float step-size2 r# |- c" z$ V6 N. }; m* K
avoid-walls% b6 k* G2 f# k- D- f8 d" L, A5 F
set stopped? false]
2 T2 Q$ t3 Q. t% F4 }' m[set stopped? true]
: G  C  R. t4 Y) w2 z, C]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成8 f" I$ R* V8 m0 W7 J4 o# G+ {
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
% o0 f2 e8 t0 }5 v$ R  K则可以顺利的终止go程序* [& _" f7 `/ c
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-27 19:31 , Processed in 0.018549 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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