设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5930|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false% S2 w5 j  l3 ^$ [. m! g5 s3 e
to go
/ M- v5 s/ F9 K6 vif not any? turtles with [not stopped? ] [ stop ]  , p  l" @5 ^& q% s
ask turtles with [remainder who 5 = 0] [
4 E1 I' C" E9 f0 t. g! K( Vset close-mates  (turtles with [self != myself])with[7 O& z( o, F( D" @6 b
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ( ]4 i- R# ~% u( K$ I6 r; d
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
5 v4 m* B7 r* a. C" ^* cand remainder who 5 = 0 / q3 h# s# N) y8 U% U
]                  
2 G- X8 j" Q" w1 Q" d! B5 @: U# Nifelse any? close-mates
8 a6 `: Y; ?5 u% n; T  O6 g5 D[                                                                5 E/ X: y  N- f2 u/ q
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]; B0 p' R9 V! C; {
face closest-one
; \, n# `. n. q4 e( D- I$ V. nrt 180
6 m1 J5 i  A/ Y( U6 i7 A: Ofd random-float step-size3 ~$ W+ C5 h  D) x3 W) P
avoid-walls
) l) \2 S; x8 B# D6 K0 @2 F: yset stopped? false]
! H8 k' t. a  k3 L+ P* m3 W: [0 H; j[set stopped? true] . U: J+ c9 @6 t/ o% i% a& R
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
. G  [: w- @! m. Hif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]( H. n8 R$ p' Q" w) g
则可以顺利的终止go程序& `* V* W4 k7 r$ R, c6 o: T
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-21 21:10 , Processed in 0.024047 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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