设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6036|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false: x- |. O% a  C- o
to go
3 ]* b1 V) T' f0 P: L. Lif not any? turtles with [not stopped? ] [ stop ]  ) l  G. k1 M2 C. M( v! w$ Q
ask turtles with [remainder who 5 = 0] [3 E2 o$ e- A" d3 [! b
set close-mates  (turtles with [self != myself])with[7 H3 c1 o) v* D! b4 B$ O+ ?, U
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
* t: c7 ]0 J, |! ^$ W& _and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
1 b- d7 L' E6 d+ [and remainder who 5 = 0
4 Q2 Y3 X, X. W# l1 L; }( ^# `+ t" |]                  
2 C' v, e4 g. Y3 ?: W' g+ f4 lifelse any? close-mates
3 o8 x; c$ B* m6 H[                                                               
' z7 w- K! f: T4 ]% Y8 z9 cset closest-one min-one-of (close-mates with[self != myself] )[distance myself]  W" L+ P. S5 |9 U% S# P
face closest-one
( P% S, T9 k& Hrt 180
; ~) i% Y3 i/ afd random-float step-size2 X5 p! C: R0 `+ z# N! u# e5 p
avoid-walls! W' f/ P) H) N7 C
set stopped? false]' Y) t; @( G. l+ Y5 j7 r0 |& s
[set stopped? true] 6 I" P# J0 f9 P/ D5 Z
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
8 \! f/ H2 c. Z) ~if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
7 G8 D" y/ I5 n- _% P4 f& g+ G则可以顺利的终止go程序. |' J$ H7 C- v
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-15 22:01 , Processed in 0.017020 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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