设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5601|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false+ I( b0 {5 ^" v
to go' U0 m* V/ w& f6 o. ~" _: Y
if not any? turtles with [not stopped? ] [ stop ]  1 r  j" m2 k. g+ `4 G! G
ask turtles with [remainder who 5 = 0] [' R: J% E7 C4 T# i  l$ @# Y
set close-mates  (turtles with [self != myself])with[! O: P7 j* @. ^
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
( g. q( `3 U" d! \+ I0 H, e" F. I! land (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
4 c8 T0 m; Q/ t! y6 N2 oand remainder who 5 = 0 ! [5 _) c9 V2 s8 A5 K2 [
]                  
4 o5 u5 t- _( S! H9 lifelse any? close-mates
  Q2 q* d. _# q+ w[                                                                2 a% V3 g) W3 s" }1 c
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
: y0 M9 q3 q2 I2 Z# Aface closest-one8 J7 t* j) o4 I# D% p7 L
rt 180
3 ~0 K3 G7 I3 Z. R0 C0 efd random-float step-size
( c& w6 p2 P( k' b5 Z: ?3 q4 d3 s' havoid-walls6 Q3 e, l3 i1 I) m5 D+ K( w7 q
set stopped? false]% ~0 p5 j- w9 ~
[set stopped? true] ) `& m. v% F) ]" K4 N. k+ b
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
/ A. Y2 V: I: t# n* Zif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
0 \- r3 `3 |$ a+ A5 S  L" B+ w' _0 s则可以顺利的终止go程序
+ t3 M- U# U# _( x" X但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-11 03:37 , Processed in 0.016943 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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