设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6716|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
; p6 p1 |9 g* ?; N* v/ Uto go
& ~4 m1 o; R: V) G4 ]* gif not any? turtles with [not stopped? ] [ stop ]  
4 j$ L/ \: y5 h: `4 O! _ask turtles with [remainder who 5 = 0] [0 P- u1 b3 I; D
set close-mates  (turtles with [self != myself])with[
' i' o4 k9 x* p- L2 u(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
$ t. s( Q, B8 I* Y0 Gand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
# @9 M2 S7 p  q! e: dand remainder who 5 = 0
8 @2 [  X2 d$ I* I# X2 s+ L* l]                  
8 m4 \+ {  T% D( B. kifelse any? close-mates $ [8 x+ e. ]1 d( _" c, P! ~( b
[                                                               
# d# I- S) t( oset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
2 o0 E6 _3 @0 F3 {face closest-one3 U: @7 a' u; R5 M, b% n6 _
rt 1802 B6 @! h3 m; [: s! ?
fd random-float step-size' K6 x% Z3 s( R7 f
avoid-walls
! o( C+ L; S# V! e5 Cset stopped? false]
& N3 H1 G4 o# h7 B0 C[set stopped? true] 7 Q% ~1 G( Y0 y& C0 T
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
! U! }0 V% E" U, S) [, M) z5 |if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
0 A/ C, h( f0 B. P1 Z" F则可以顺利的终止go程序
+ [$ \9 K6 L$ R, R" l3 ~但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-15 17:00 , Processed in 0.015185 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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