设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6407|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
& x/ P( J( i$ X( D! m* Uto go
2 `! E) j6 S. B4 U. b5 K6 pif not any? turtles with [not stopped? ] [ stop ]  
$ t2 W# m3 M7 ]& k, z5 r6 _5 H4 cask turtles with [remainder who 5 = 0] [
: |3 t3 c3 C/ M' k4 Tset close-mates  (turtles with [self != myself])with[
! h) J" \, J/ [$ [, R9 T(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 0 t/ t& Z( \9 i# X0 ?: c* _
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
/ Y' f9 o6 p1 a6 D2 O5 U+ eand remainder who 5 = 0
0 K2 x# K6 _9 _5 ]) d]                   ( ]8 R' U3 T) D: {4 n0 L. u4 |7 J
ifelse any? close-mates
' t+ O0 X7 C% ~" d[                                                                : u- T7 j8 A" M" z
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]+ v0 Q) \0 F7 K3 b7 b
face closest-one
9 H& u, @6 I: s% r- y$ z4 c8 prt 180
& n, M0 ^2 L- y% H; A; J" F/ Bfd random-float step-size
) F' k9 A4 C( `5 ?9 @avoid-walls( [4 n; O5 I  W! R
set stopped? false]; b* [+ Y3 D2 c# _
[set stopped? true]
& p4 @  d. I+ F+ y: Z6 b]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成. t! w% d  b1 R8 D
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]: n7 m! U7 }2 J# B3 x: B
则可以顺利的终止go程序7 y" i& t2 L/ T8 t
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-27 08:12 , Processed in 0.011416 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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