设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5701|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false1 X, ]+ W1 f! J$ s4 k$ ?
to go
7 p0 t* f9 T7 a' [7 k: d$ L0 T8 Fif not any? turtles with [not stopped? ] [ stop ]  ' }  g. R* E) H1 @
ask turtles with [remainder who 5 = 0] [
1 M! ~( _" N1 s5 [% }5 A7 O0 pset close-mates  (turtles with [self != myself])with[% z! ?# I/ S. P; U
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
# a4 g) @- f9 aand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 1 `. j; M$ u, q! T) l2 {2 o( V" {1 d' T
and remainder who 5 = 0
2 s# j4 S8 p3 O( x3 M( C]                   . N1 a8 i% Y3 s# Y
ifelse any? close-mates
$ L9 y) P( x0 X- v4 b! R[                                                                4 l! B4 z* |( S
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]6 I- ?; Y2 m. o: z0 i
face closest-one+ X7 V8 ~& h% ~9 g' g7 V% p, N  q
rt 1808 t1 d3 Y3 C/ _1 j' |3 g
fd random-float step-size
4 ^8 u" }1 f5 s* V$ c/ S4 i' yavoid-walls
; B! A3 Y0 Y+ _; lset stopped? false]+ h8 E8 U, S3 T; S! y
[set stopped? true] % S) |9 L3 Y/ M
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
2 C0 ~6 n6 m  \5 k# j6 ?- p8 ]if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]- F; {3 |, h$ ~0 ^
则可以顺利的终止go程序
$ \" W0 d: H2 w1 ?! X" {但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-8 06:09 , Processed in 0.018664 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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