设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4590|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false5 }" y* [: D" c0 b  Q1 u
to go4 T9 q4 k- d; w
if not any? turtles with [not stopped? ] [ stop ]  * N8 h# I/ j1 m" G
ask turtles with [remainder who 5 = 0] [
) u& o' G6 w5 \5 d+ Iset close-mates  (turtles with [self != myself])with[
5 G! z, |" I- S; g+ ]4 |(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
2 t, H8 x5 c$ F+ x; f/ c1 oand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) , c. X/ m, P  M% ]! \) s
and remainder who 5 = 0 5 P6 R6 ?* n+ o. U0 v
]                   # o2 Z2 l. a4 r1 F
ifelse any? close-mates
; J/ y& y& l  o; j' J/ R6 ?( \) w7 Y/ Q: h[                                                                4 n- T7 X, P& A& i4 o* ]  \- G4 y
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]8 L$ Y5 ?$ e' d- ~% p" O  N
face closest-one+ C5 d# R* G6 C, J; A  U3 Z# e
rt 180- T6 l+ H0 j' \6 r7 F8 ~9 e# }9 c
fd random-float step-size4 O( j0 _8 i# {5 H3 q2 a5 X
avoid-walls  S; z+ P6 R' k& b: D' C. ~% a
set stopped? false]
/ r5 e+ {( j1 P[set stopped? true] 8 c, K* R+ `" S7 m. s" V% |
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
: \! U! @% `& z( Xif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
- ]% m# m+ G8 w7 l则可以顺利的终止go程序
: s5 d$ e4 d  q9 i! Z3 p/ C  D( f但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-30 06:53 , Processed in 0.017784 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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