设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6611|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
0 e: X( R% s6 {to go5 U, q/ E+ }. V  I% C8 G6 A" w
if not any? turtles with [not stopped? ] [ stop ]  ( I6 p- l$ ~  k
ask turtles with [remainder who 5 = 0] [! D, e9 U* r2 e
set close-mates  (turtles with [self != myself])with[
8 p+ y9 X7 d6 c6 x; g6 B5 j(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
( j$ [9 I8 S3 {and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )   u9 C$ b9 Q- q! E/ U* |
and remainder who 5 = 0
, f% r2 ^8 g8 U* Y5 o$ M2 g! F]                  
1 r( W2 f5 e! D  x) t& Qifelse any? close-mates
" t2 n9 ~. D  |# U( j) a0 ][                                                               
: B. i0 M3 x0 V* U: H6 m/ R2 Sset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
4 u' }& t; l+ Y0 d9 Hface closest-one7 l) i* \6 F3 B8 C) A
rt 180
0 X$ s3 i- J; o# Z: a, U! ?fd random-float step-size
: t& h5 }$ b2 s  Z& @& \7 R( W" oavoid-walls
- K$ ?8 W% U2 R+ f9 yset stopped? false]
+ o7 s# j  B' Q2 ~[set stopped? true]
) Y4 s3 \( |' M3 a]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
7 V: I' p2 i2 @: ?: `* T3 p1 G. Aif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
! g8 Q: W8 l' E6 r9 R( `4 N. d则可以顺利的终止go程序
' Y$ \& _' b* s7 s2 |9 e但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-29 23:49 , Processed in 0.016676 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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