设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5505|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false$ R) p( R0 `5 ?% A/ T/ T9 H2 x
to go% R* P- g# y6 m, |7 W
if not any? turtles with [not stopped? ] [ stop ]  
) X" f! `6 J9 D" `4 vask turtles with [remainder who 5 = 0] [1 e- R4 G* T9 \+ q/ L
set close-mates  (turtles with [self != myself])with[
; U: p; C0 I) ~* a- C7 T(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
. M6 v# V6 C3 F* K7 Vand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 1 u, h1 C$ ?+ _4 b) c7 j
and remainder who 5 = 0
/ q* Z  c9 ^2 Y# E# ]2 i, K]                   2 s5 }/ A1 o! C
ifelse any? close-mates
% d( [# }% k) O! ?8 c[                                                                9 Y  u. ?/ t4 ?8 b% ~( D! N0 n; M
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]. e' e' m- y6 n& i. F9 e# S, A9 f9 [
face closest-one
: a+ t& h. m3 g1 prt 180: X5 S+ J% S3 y. R3 d
fd random-float step-size
  Q- {9 Q% Z5 T% W( w( A- V- eavoid-walls$ |& O* @" d' g: {) q
set stopped? false]
6 y; O2 t( v: n6 s6 f  `9 i1 g[set stopped? true]
/ Q0 R# ]! X7 e8 m1 O( f]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
  b8 R5 q' f( x5 A% t, Rif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]5 G6 P/ J* T7 B. ^5 d4 F! H
则可以顺利的终止go程序& g0 G) A5 s+ Q
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-16 13:51 , Processed in 0.013823 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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