设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5325|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false4 C/ S( U, |) h# k3 ~" J
to go8 j) ?+ \$ \0 i! n+ |+ @) t
if not any? turtles with [not stopped? ] [ stop ]  
7 {, J$ P; p6 p9 Nask turtles with [remainder who 5 = 0] [8 ]  _& T( h5 |6 h
set close-mates  (turtles with [self != myself])with[
0 F/ q" {5 R) w3 |  t" n% `8 u# W! i(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) # q# g% y( {% e" b
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
4 k5 G. U/ O( F( V4 rand remainder who 5 = 0
7 i3 q: O- q' B% r* ~]                   3 o9 z5 Y7 A2 r! e1 N
ifelse any? close-mates ; _! f/ b" v! q5 D' z
[                                                                9 }5 B% o1 `, w
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]6 {7 d  g4 t5 i0 x
face closest-one
: h0 T' d' F* ?0 T' g3 ?rt 180' O& T1 z% Q7 m( Q$ W* q. ]
fd random-float step-size
  ?5 k5 Q" Q9 F/ F* Wavoid-walls
3 s, k7 B2 `) Iset stopped? false]6 \" [2 w  ^) D8 d: H& G* x) S) N& d
[set stopped? true]
+ ]. [, y! E, G% Q. L1 X: C]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成: K6 ?+ z1 J" q' J2 u
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
" z  ?% A) D2 x6 m" C4 t. }则可以顺利的终止go程序
" ?" @3 L! b1 [- k/ ^/ c3 v但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-22 16:47 , Processed in 0.015641 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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