设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5551|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
" j% y! Q% P( {to go
. a( p% i' c1 o/ Aif not any? turtles with [not stopped? ] [ stop ]  
/ W( }0 r( q, D$ d% M% `ask turtles with [remainder who 5 = 0] [
) V) |0 I$ |2 o  ~6 uset close-mates  (turtles with [self != myself])with[; y+ X. a0 t! Q$ |- y- O
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
9 @( r  ?7 \) k8 h: b1 z$ |6 nand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
) x. i2 ~5 W; s* y$ g  \and remainder who 5 = 0 ' Q& H7 _; ]8 A" k6 k8 v
]                  
- _! X; L+ w# qifelse any? close-mates 5 P" Q% c( a: ^- z. r
[                                                                / I1 [* `+ p9 r5 x' Q0 l/ t; ~
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
: t6 ?4 o! Z- G9 ^face closest-one
5 N7 N  g- ~! Q5 @' o# T4 F" Trt 180
% B- ~4 G. _( {fd random-float step-size3 X% h& S2 \, a# \  ?, S
avoid-walls% l, j7 q, r8 x0 r' }
set stopped? false]
" H% z9 \- L- h% ?[set stopped? true] 6 t7 }" S% w$ l9 U
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
& z4 t+ ~; D" Y7 p) Q8 bif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]9 Y& x4 d" M( v: b2 p
则可以顺利的终止go程序
0 A# |/ k* r  o' ?+ X但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-30 16:06 , Processed in 0.018326 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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