设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6064|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false5 P1 K6 g/ L7 j% x: T. j
to go( o( w& s7 P' U) c* e
if not any? turtles with [not stopped? ] [ stop ]  
& V2 u1 M. Q7 F$ x' ^8 c5 a4 K$ L1 eask turtles with [remainder who 5 = 0] [
  W0 C) m2 {1 G2 E4 A2 Lset close-mates  (turtles with [self != myself])with[
% L: V1 j$ A7 T- k(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) * Y& m3 c: f3 U$ _: l7 E
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) ' ?% R/ f! X6 P1 {  P
and remainder who 5 = 0
" j' O# F8 h  h6 l. g& F" D]                  
) j/ a6 g" J! X7 mifelse any? close-mates ) e& q9 R% e; {- r3 R; V; _
[                                                                4 o7 F; p- v5 p  C: n7 h: p* o2 g4 k0 t
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]3 n. D: }& N. A4 z& |
face closest-one
) {6 M6 B8 h6 U9 Z/ M5 K; Zrt 180
8 \0 x. i6 V( V& [& i1 q& U( i1 {fd random-float step-size9 i' C& m- a  l5 e$ \/ {, m
avoid-walls2 f& y% y4 y& v$ Y: {% m
set stopped? false]4 r1 e! r) P+ _# S3 M+ V) U5 ]
[set stopped? true] # _& E5 o5 i4 _4 F* a8 Q2 E0 A# v8 W
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
0 v' M& S: d- x( ^if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]  @, K: @( _: o, n
则可以顺利的终止go程序
, c/ X) o3 x3 w/ h7 d3 R- ]但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-26 17:00 , Processed in 0.016909 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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