设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6082|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
' ~! i5 C! n' a& z: S  O$ z  K) Gto go
! o# c" i- @. a9 Qif not any? turtles with [not stopped? ] [ stop ]    h( n. G7 I( t& c# J% ?3 G
ask turtles with [remainder who 5 = 0] [
, o! R8 k9 \6 a, l  |3 gset close-mates  (turtles with [self != myself])with[' f, K( p0 r! S, Y) V
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
& s& c( {4 [. a' s! s! Z9 Eand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
$ W! y; O' ?4 Cand remainder who 5 = 0 9 H; k- \6 K2 W* y; J; K2 a
]                   ; _' h: K. n* Y; ^. f) o
ifelse any? close-mates
1 i( A/ U% o" r; {3 Z[                                                               
; K' m, x4 a7 x* T2 T' e$ p; Eset closest-one min-one-of (close-mates with[self != myself] )[distance myself]# b7 G3 l+ T; L6 }) D( t, r6 \+ t
face closest-one1 G1 q7 J( K1 Z
rt 180& J# O7 N" {. @4 k4 _7 D7 {
fd random-float step-size' c2 k7 K% p6 J( h  U
avoid-walls7 j# W5 u. {, B! A- t/ k0 q, k
set stopped? false]/ @3 y0 |. P  p! s
[set stopped? true] 2 p4 \/ d  D0 t8 C. r
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成8 P! w" ]0 U3 F* M
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
* e4 r4 o+ Q! w6 U5 l则可以顺利的终止go程序$ }  h/ S4 t1 a( A
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-1 03:23 , Processed in 0.014728 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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