设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5844|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
' n7 V4 B8 l8 a* jto go" z+ l8 y/ u2 S  \% F
if not any? turtles with [not stopped? ] [ stop ]  ( U! n& s, k2 g  H4 ]
ask turtles with [remainder who 5 = 0] [
, o7 d3 d& k7 j; oset close-mates  (turtles with [self != myself])with[# r, |; `9 d$ J" J4 {
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ) A. w. l/ C! X& a2 j' b
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
: L! q4 k- @2 U1 K8 ~" T: y- l. tand remainder who 5 = 0
4 ]! [2 t0 W6 j! {! m]                   ( [" b4 L8 b* \8 X1 i
ifelse any? close-mates
2 V! B  M2 R' h$ @, c" n# q& @[                                                               
. d8 L8 G1 U( [" R7 E+ t4 Uset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
) B* u( e+ O* C/ Xface closest-one
4 k8 C. k' Z: u/ wrt 180
# L7 w: j7 G$ \fd random-float step-size
4 p( Q$ ?( `9 m* k6 {% W( v, Y0 A6 Y- Navoid-walls8 h: K2 d: Q+ [3 i& p
set stopped? false]/ u; a6 \, ]9 p0 r: v9 h3 b
[set stopped? true]
- S( Q7 y1 f  I/ J/ R+ x]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
" ]5 \4 H0 W" w" E# J2 [/ bif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]5 v: y! e* @$ N- N% t9 N
则可以顺利的终止go程序7 \; U4 w2 X/ b3 S
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-5 22:40 , Processed in 0.019287 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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