设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6313|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false! R  R1 s- j6 [* k9 g( @
to go  S( {: K5 d) d3 L
if not any? turtles with [not stopped? ] [ stop ]  
& z: L8 C3 \8 M& D! h8 a( |& Uask turtles with [remainder who 5 = 0] [  z/ k1 U/ E# K2 W" f9 h0 ^
set close-mates  (turtles with [self != myself])with[, s6 \* f$ u! Y2 X+ i9 b9 t
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ( X0 e( t) d" i5 C5 o
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
: W2 {% r6 C$ Hand remainder who 5 = 0
; u' b0 i4 y. J! S3 }! u. k]                  
  m2 T& ^6 i' w- Pifelse any? close-mates 9 f- F: j# N3 r% n: s% @
[                                                                ( l% M( q  v6 f' h
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]$ z4 _1 l/ r' C0 r! ~
face closest-one
! c8 T, E7 b( G1 Q, F  n) s* Nrt 1800 S! C8 a9 K) i8 a/ I
fd random-float step-size
/ Q/ h; V$ x8 R! T5 Xavoid-walls( ]1 H' K) p8 x
set stopped? false]
# ^. E$ j4 n0 z! M: l5 M4 S[set stopped? true]
6 q, @- I  {0 K  y]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成+ k7 r6 h2 Q8 f' _7 G% I8 a
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
  F- ^" W* {$ |则可以顺利的终止go程序! x  w; R; b2 j. J+ T- J* X9 w, l
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-16 05:52 , Processed in 0.013813 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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