设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3734|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
# W7 A3 I$ a. y. b2 V% \6 L! p4 Dto go
/ P' U5 s! p+ ?4 E) I0 ~if not any? turtles with [not stopped? ] [ stop ]  + }" X& V9 i: V3 t' P) z
ask turtles with [remainder who 5 = 0] [
2 |5 ^4 H$ T. J) o. ?set close-mates  (turtles with [self != myself])with[
% a- Y8 {0 J* K0 C2 t& H(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
9 n" s" w& K+ R; jand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
; E7 Z7 p' ~5 N( d! Eand remainder who 5 = 0
$ P1 s  o( g7 D5 y]                  
. E  Q: `" g* S4 c2 M: a  Iifelse any? close-mates # U! B; r& u6 O5 Y- }
[                                                                  ?  D" v7 a* b: ]8 ^. h! \# D
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]" M9 I1 F) j4 V' G8 ?2 \
face closest-one
1 ?; A$ g0 a1 @3 K! n. p! Xrt 1803 Q- c/ @9 R8 j9 N# J
fd random-float step-size
& ^+ F" P; H& c9 Aavoid-walls
0 V6 a) Q* A+ Q6 @! ]5 d9 ?) pset stopped? false]
  c$ ^4 ]$ C* ?2 @4 j: s[set stopped? true]
5 n  F! C" M4 S, \# S; b! G5 [, _]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
6 S$ q. N, [+ ]if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
( D) I% W! s9 L4 ~+ x1 l* d则可以顺利的终止go程序
# ^2 r: z" E" n' }5 Y4 e但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-21 22:00 , Processed in 1.194264 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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