设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6170|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false( K$ K/ w: r3 {. f) D) Z( m
to go& o% l& R3 r- e
if not any? turtles with [not stopped? ] [ stop ]  : }- D$ z, l$ E" q* K, A
ask turtles with [remainder who 5 = 0] [
) q1 k) v. T! K9 F. y( V* mset close-mates  (turtles with [self != myself])with[
- z  A, w  D0 T7 p; P( e(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) % j9 C2 T* I& w9 `7 q% K, v
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
- k* [1 M7 N  @0 N8 O0 mand remainder who 5 = 0
7 W1 x3 z: e5 ]]                   4 a: D0 N1 w/ B: j9 c4 _  l; N
ifelse any? close-mates % d3 |0 I& p: Q4 [1 c' c5 s7 D
[                                                                ! H5 n% a& k. D7 A% f
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]# W4 c! f8 r2 H
face closest-one& T# M1 g7 |( l9 L, ^
rt 180
" C6 ?2 f& {: ]. ^! K6 n5 yfd random-float step-size: k# \4 w8 j& g6 c1 o$ D
avoid-walls
' t. F( C* s0 y$ U0 l9 [) vset stopped? false]
) W! c- T5 J0 P( r) {! b( @. g* C[set stopped? true]
3 O. A! F; s$ g/ b- B" @3 |]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
3 Q8 ?, h! n4 O* Z9 s2 G& aif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]6 O5 A1 |" U8 {
则可以顺利的终止go程序
1 U9 P1 B, O$ A3 N0 k但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 21:40 , Processed in 0.013262 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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