设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5501|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false) o/ o, o+ [* p, V# `
to go' l- k' G% i3 m
if not any? turtles with [not stopped? ] [ stop ]  
) p! b1 x) s, t$ X! m2 e9 w7 wask turtles with [remainder who 5 = 0] [
+ y; y, P/ W- w4 }- Y) aset close-mates  (turtles with [self != myself])with[7 c! z% E# o9 M
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
; S; Z8 O  D, e3 a- M% u# |5 d0 iand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
3 ~. C1 L5 S0 S# q% E% aand remainder who 5 = 0 2 w/ p/ p' J1 B; x. e
]                  
6 M! Q& m! t4 u; j: m: S7 ^ifelse any? close-mates / \* J& l7 R- @& C! D' Y' X! q
[                                                               
# Y8 g3 @( {  nset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
, {8 B4 h4 k# Q& h6 M8 Uface closest-one
/ P- l7 E% W5 o6 }( J& o. }0 }rt 180! a( ^. f' H9 ^* E
fd random-float step-size
0 C% H, r9 R3 g( F+ i: q3 A0 ?avoid-walls; ?7 I! y9 }6 E' q" S
set stopped? false]
- A: M% [5 Q% M7 w% }9 X[set stopped? true]
# K, v* K3 [1 L7 a; u2 X7 n9 j]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
3 v& K; M( t* R9 {# P/ yif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]3 ~8 _. U" C1 X' K8 @
则可以顺利的终止go程序+ F0 v4 j$ \' l' E
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-14 16:21 , Processed in 0.018251 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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