设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5488|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false5 X7 T7 F  `& e- w# Z
to go6 D: S5 _; D4 |1 U, u# P7 l
if not any? turtles with [not stopped? ] [ stop ]  ; c, Z! I1 u- s3 C) @/ w
ask turtles with [remainder who 5 = 0] [
& B4 `- D' O  |( l# i/ `9 {set close-mates  (turtles with [self != myself])with[3 B/ E; }1 N$ Q% w& J& ?1 O
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ; c; Z" T7 [4 u; Y2 C
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 6 d, @+ B1 h9 h& O& F( }" [
and remainder who 5 = 0 & m. g) J8 D9 G' @, M! M
]                   5 r; n* |3 ^$ _
ifelse any? close-mates   [* `5 C! Y6 {/ C6 a) v
[                                                                * f, O9 r$ X5 ~. v: h* n/ g1 h
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
& m' v0 P( k. x2 g2 @' Mface closest-one
: Y- N, P" o  v0 j4 S. s& ~% d$ ^rt 180
- j. R) t2 [1 Y- I; h4 \fd random-float step-size
; X" g, h  u: g+ e, navoid-walls! _8 Q* _3 G, n, Y  v& L  M' C" `+ S
set stopped? false]
8 \0 O) n" d3 I0 o6 w2 v[set stopped? true]
6 B: E+ ]9 i8 I! ?6 G- U]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成+ d% [* i$ W- b# H7 z4 G# E
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]) Z. }& u  }3 A: ~. C% i4 [
则可以顺利的终止go程序$ m# T& x# G& Y* R( A+ q( ^
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-9 12:10 , Processed in 0.015641 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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