设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6420|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
$ H# p2 g# `' e+ _0 N( W' z9 mto go/ X: s) z6 R9 r' |6 [" r
if not any? turtles with [not stopped? ] [ stop ]  ) I- n" N, @  F! v) |5 K. }
ask turtles with [remainder who 5 = 0] [
' E+ t+ ~4 h7 xset close-mates  (turtles with [self != myself])with[1 B" c1 {1 w. x, d
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 7 Z3 Y, K% r' J; k
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
+ B5 a- ]& ?1 A, j3 K, ^* E, rand remainder who 5 = 0
( B" b8 W. O. {5 \6 o2 E]                   - m* v) `) Y, X+ e
ifelse any? close-mates
2 F8 u7 P' d/ [* D6 L: h. t/ S[                                                               
- M7 |0 x7 |- Kset closest-one min-one-of (close-mates with[self != myself] )[distance myself]( D: a/ D8 ^: n& H$ P" q( M) ^: }
face closest-one; K# Y+ ?6 g( r; \& |
rt 180
4 L. N# M7 |. w0 [& _fd random-float step-size) X6 |1 x, Y; q* i
avoid-walls
$ _# q, B- R6 K5 ~5 j, Xset stopped? false]
' j" E3 u) n. k3 V+ x2 P[set stopped? true] 4 z0 M& ?; f9 N' |2 ~  ~9 F) s
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
+ l% |5 @  \- S; y9 ~if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
# Q% A2 k0 j( K) ^9 f& Y2 _! G则可以顺利的终止go程序* ?; e2 u  n- ~  _
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-28 20:58 , Processed in 0.015585 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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