设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6686|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false5 _% w1 I# ]& A2 U
to go
) t1 V+ w! s- D( xif not any? turtles with [not stopped? ] [ stop ]  . z5 P: `$ {9 y% `5 I
ask turtles with [remainder who 5 = 0] [# w& m- V) ?5 H$ J2 L5 _
set close-mates  (turtles with [self != myself])with[
# \* a) p0 E8 R2 \3 n- W(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 4 F% B/ a( p. L0 Q, K" }: e" n0 }
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 6 A; s3 I! A. e! }( K. e0 `1 ~) P( P
and remainder who 5 = 0
, {, o  I0 d9 |6 O% ]- t/ U]                  
/ j) B8 m$ Q7 n/ n. o( rifelse any? close-mates 6 D) n0 `, k4 b) A3 c5 K. u+ e' |
[                                                               
' R  N: l( g9 D4 ~; T1 Rset closest-one min-one-of (close-mates with[self != myself] )[distance myself]5 W8 p/ O$ i( \8 E, L; ?6 `
face closest-one
1 T( r5 M+ ?4 d4 krt 180
" C6 D# K+ a1 q3 T1 n6 R3 {fd random-float step-size
- B2 s2 A3 O1 N% Yavoid-walls
/ F( _5 t1 X( W2 t) K5 S3 qset stopped? false]
/ V% e# v" u1 r$ s) m; D8 m: w[set stopped? true] 2 T1 s* b* L  G. P9 S" U* \
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成3 E' F; p$ g3 }  C1 y5 |
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
6 [5 t% [6 U1 F6 m  Y- f- z9 |) p则可以顺利的终止go程序$ N5 z- j' }  x% q) u+ U
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-11 06:57 , Processed in 0.019274 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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