设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5297|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
' Q: b0 ~5 ?3 U! J4 }/ `; q) ato go
# }9 v; J0 V8 N& {if not any? turtles with [not stopped? ] [ stop ]  5 x" o3 H" W' f4 ?6 p" ]5 y% F
ask turtles with [remainder who 5 = 0] [0 j# S0 N- x( _) s
set close-mates  (turtles with [self != myself])with[# H: a# U" K  V
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
- P" c$ m" K* F) E9 sand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) , H# E! L  v6 z
and remainder who 5 = 0 2 X) k) \8 l% O  @% @1 b
]                   ( b' M$ {1 Y$ H! k1 I# I
ifelse any? close-mates 2 L# h) Q6 M4 D+ A$ a
[                                                               
, G4 I8 w( S1 Kset closest-one min-one-of (close-mates with[self != myself] )[distance myself], }/ k% a( H2 B- m
face closest-one, x  i% _- h$ V4 o! ?1 z9 b) s, f
rt 180
8 p1 C+ p) w& S5 T( Wfd random-float step-size
! S1 t9 h4 T9 e# z  r5 W8 savoid-walls
$ s3 z! U( U0 C5 Y6 e# Q2 ^% xset stopped? false]+ C: t0 _9 P) P: e( y  C2 q4 V
[set stopped? true] 8 T5 z. o- Z/ y
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成! W2 v8 \* o, G  G. E. S" O8 _* V
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
; }4 a: O% @! j, C. d. ?则可以顺利的终止go程序
$ ?7 d3 c4 D$ c0 `但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-15 23:03 , Processed in 0.020064 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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