设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6195|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false3 G) Z; t+ R( ]* K( k3 T' t
to go- I5 w+ w' o% j$ @- f2 O6 O
if not any? turtles with [not stopped? ] [ stop ]  
. h& Q8 v6 K/ Pask turtles with [remainder who 5 = 0] [6 @0 n6 K1 g1 W. y
set close-mates  (turtles with [self != myself])with[
! ~- D  w1 e& c(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
4 w- j! h% e/ W5 i1 B: ]. wand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
) O( T( g$ L' ~6 `9 Zand remainder who 5 = 0
* X: O% v3 E  p  b( }7 J]                   % q8 Q2 Q5 S9 U/ o/ d$ }/ c1 Q
ifelse any? close-mates
& Q# e! C2 u  F5 R+ `# ~- R1 ^[                                                               
; l) e! ]7 t5 r& Rset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
4 r- O4 u. @% G3 c/ V6 Hface closest-one! }/ j$ J* m8 z% d  H) O
rt 180
% b9 r( z) `+ i, r5 Vfd random-float step-size
* c5 h# L$ l" X2 _# ^avoid-walls5 U# U4 g- R+ O" Y. T
set stopped? false]
: W! R# q8 Q5 }4 ~[set stopped? true] ; G+ e. |" @0 M1 Q6 j" L
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成. v- G  z: U) p6 D5 V& H) Z' P
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
& J8 c3 c6 @6 x则可以顺利的终止go程序  }; G% B4 t' W  E4 Z
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-27 06:07 , Processed in 0.016980 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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