设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4953|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false7 o) T! N) i; \, o3 ]4 P7 X+ K
to go
4 S. i4 G) P$ x  m3 I( Kif not any? turtles with [not stopped? ] [ stop ]  5 s; k2 f2 u1 J# c
ask turtles with [remainder who 5 = 0] [1 X. E! @, {9 L( V% \8 H0 h5 ]
set close-mates  (turtles with [self != myself])with[, r2 @9 z; Z. R0 k; C9 U- ~0 D/ g
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
" V: E- ~5 B) K( @% A% land (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
: k* |2 n& u' e$ Hand remainder who 5 = 0
- H) B& W% O# N' a. t3 V]                  
& V- j' H7 R4 s! M  vifelse any? close-mates ' a$ u% l7 d) S) I# ]& }1 Z# a/ X- _
[                                                               
$ X# O  S& g" m1 U) h) a7 n- Nset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
% v; s; K% H7 O3 ^face closest-one5 `5 s: G  e9 v4 l$ `2 [
rt 180
' _8 b0 h6 N0 ]8 C. mfd random-float step-size
4 \" T  j* U  A* X6 @4 davoid-walls
& w) y4 Y' C3 d. l8 _! K- aset stopped? false]
0 N  Z- [: A7 ^* `- k4 T[set stopped? true] : |" |% ]4 ]1 I. ?! O8 b
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
  [1 U/ M* x" d( R8 Rif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
7 C, e4 y  B& f则可以顺利的终止go程序1 f3 P# ]# N8 C/ R$ L
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-14 00:31 , Processed in 0.014887 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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