设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6207|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
9 L8 H* t1 S+ y0 U8 x& W6 W  @to go
1 p$ |7 r8 b3 `2 ?/ ]1 F) \1 c( \if not any? turtles with [not stopped? ] [ stop ]  3 P1 t! |7 @2 M% ?4 V0 v0 i
ask turtles with [remainder who 5 = 0] [  f0 @2 C+ J$ \8 Y
set close-mates  (turtles with [self != myself])with[
: m/ l8 W  g: d/ t2 d(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
$ A7 q& }6 \& I' p. |and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
4 R/ _! d1 U5 z' Wand remainder who 5 = 0
) T' {+ T3 C- A" @: ]; \]                  
8 X, z9 Y+ A- z8 ~ifelse any? close-mates / S) `; _, r: M) l" w1 S, B# I
[                                                                + u* f7 \( A1 J+ R0 [" m" G
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]- G2 g. L( Y$ E9 S1 r* Y2 }1 F
face closest-one: p: o4 R: [. E3 G5 z
rt 180
4 d- Y/ O* H' u. Q5 Ufd random-float step-size- `0 r: S# L& `5 R- _# D
avoid-walls: _5 A1 q$ w9 m' x
set stopped? false]
- ]1 p8 [) b0 M[set stopped? true]   B+ \& [7 _' B; k: S1 a
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成' Z, k2 [, [# }7 S/ u0 l& |
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]% R/ ?0 n5 D- g# |6 I5 h
则可以顺利的终止go程序9 M: L) k4 d) y  T$ r2 j
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-29 08:59 , Processed in 0.019647 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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