设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6145|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
3 e  g7 X1 u0 y  w8 w1 D$ Mto go
0 b5 V. o/ ~3 v: \4 y% T. `; Z3 Zif not any? turtles with [not stopped? ] [ stop ]  ; K7 m" m3 ?+ u
ask turtles with [remainder who 5 = 0] [
- M, Y8 R# `* R& ^5 G1 [set close-mates  (turtles with [self != myself])with[
8 c. j8 c% N5 X/ t$ j7 x- a$ D' I$ j(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) " |; v- E) G4 s
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )   d: c1 z  O) L, W$ B
and remainder who 5 = 0   v/ m( U1 N6 ]7 _2 A& b3 u
]                   * I! ~# M( _& D1 S/ a! L3 ~
ifelse any? close-mates 2 W$ C- ^+ }7 f9 S+ {1 M& f) K
[                                                                9 [5 [  L4 ?. h/ Y7 {- B. w
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
1 C, r- I  n" @' _1 _* r( Vface closest-one" o* c* ]8 `, b
rt 180
# l* N/ u  I: J' d$ E* `fd random-float step-size
$ V6 a9 z; P& C# x" Pavoid-walls1 l8 r! D$ K' `' I1 `$ v0 g8 Q
set stopped? false]0 k8 E6 L) r8 O
[set stopped? true]
4 J% e! @2 o& N* u]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成( u" ~+ U" Z2 _9 }3 T
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]5 k% u7 |# D2 q! q7 q7 {
则可以顺利的终止go程序
8 ^# L. R% b. q) z: V但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-15 04:51 , Processed in 0.015755 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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