设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5704|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false* t4 |3 _. [/ l
to go
! w* l* p9 n+ |/ Q/ aif not any? turtles with [not stopped? ] [ stop ]  # ?+ n: @  ^* }" g9 k
ask turtles with [remainder who 5 = 0] [
8 W  S7 V! M& k  f1 d5 N) Fset close-mates  (turtles with [self != myself])with[
: x4 c: g) z+ W" ]' {(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ' G! v* Q+ e4 P3 w
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
! W$ c. U$ J3 I+ W( Cand remainder who 5 = 0
" d$ g8 I& @! f& i% m]                   , d& D- E' K( k+ b! W. O! e/ y) E
ifelse any? close-mates
3 u  l# J+ x  h& C( p- [[                                                                8 ?+ X& ^$ Y6 ?( L+ f3 V9 G
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
& d/ W/ S9 @. }/ jface closest-one
* P1 w1 s% d9 k$ e: K1 V7 P) E5 u1 _" [rt 180
4 G* ?( y0 C- Y6 B, [" g1 Efd random-float step-size% D1 M3 O. |# O( @4 g& z
avoid-walls
# c. N9 I  b( w+ Z* o5 f& ]set stopped? false], f# s1 N3 H$ J% z
[set stopped? true] 1 f, d, ?2 o5 {2 d' l" R# s; \+ |/ d
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成& ~' d* D4 K5 F& _
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]: h' W1 n+ {: ~: W* O
则可以顺利的终止go程序
! z8 ]% a5 E4 @" s* j" F但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-8 19:13 , Processed in 0.021962 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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