设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5354|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false: z! v9 V3 [( u7 l& q& m( D
to go7 z* b( p5 Q% _4 N
if not any? turtles with [not stopped? ] [ stop ]  
! Q& G& K9 p- V4 v1 r1 oask turtles with [remainder who 5 = 0] [. B7 H, {- D' K# t
set close-mates  (turtles with [self != myself])with[6 {* h( f8 E6 V# I+ h/ T
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
& ^1 `$ k  `! I. e  zand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
* K; ?: e7 X$ U. i* @" nand remainder who 5 = 0
" I/ j5 b. Z$ G! ?9 e% Y! g5 a]                  
7 J2 X  k; k5 f( o  Iifelse any? close-mates ; {* Y5 P* K; s9 h! {. A8 ?: \; j
[                                                               
) x1 |: p7 I* i; lset closest-one min-one-of (close-mates with[self != myself] )[distance myself]. D$ w2 E, e3 e2 P; _
face closest-one
4 W0 H" f) I7 j5 l/ O8 V% Prt 1805 U6 S. q3 U2 q( S
fd random-float step-size1 L, A$ a3 b$ T* q; V
avoid-walls
; k& Q3 l: |# Mset stopped? false]$ |/ S+ i0 m% x6 e! ?, a1 f3 s' f
[set stopped? true] 2 p* W: ?8 `/ k
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成6 H, v1 N" X: [4 x" C
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
+ y; x8 F: |2 q& M则可以顺利的终止go程序" Z% t7 V3 }% \) T
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-7 03:29 , Processed in 0.017675 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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