设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5191|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
  [8 T! I" L! v' dto go2 F" Q+ I$ ~* N- F4 L
if not any? turtles with [not stopped? ] [ stop ]  
1 [; K7 o# |- G0 S' F9 h3 E5 ^1 \ask turtles with [remainder who 5 = 0] [, C; _( K" f1 r9 r; ]
set close-mates  (turtles with [self != myself])with[
+ |7 q, @9 ]) U+ W1 h! B7 H(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
5 H3 `5 h+ B& t( D, W' mand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
0 _2 o) S) t5 v2 V" A8 a# {" J; sand remainder who 5 = 0
; b( P  G/ ?% }4 \+ F, I]                  
6 Z2 x0 r3 H; H* O( U5 u8 oifelse any? close-mates 4 [; [& d2 h5 F* o9 ]! M
[                                                                % m) m$ A, h% j
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
2 d' ^5 T0 Y3 v* G1 Y" Vface closest-one! q4 o+ U- k# f. O/ |$ d$ P3 ]0 u
rt 180
# ^2 p- ^$ l0 A4 B: H- G0 mfd random-float step-size
/ G, y1 }. d' \* [avoid-walls8 E0 i; Z- N& f3 S' c# K/ o7 \9 ]7 a
set stopped? false]0 {  {8 F! d/ }$ u9 f
[set stopped? true] . l# \4 p- L0 D( |2 R. y4 x
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成3 ^% p$ c9 x0 e+ o
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
2 I2 F/ N! Y2 h8 }( x2 v则可以顺利的终止go程序
6 S) a: c1 R$ N; v( C6 x/ \但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-1 23:23 , Processed in 0.013060 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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