设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6662|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
/ `$ E6 j; y+ ]: @, fto go$ U% w( E$ C3 h5 ^
if not any? turtles with [not stopped? ] [ stop ]  # W- a5 ?+ l: @0 i5 P
ask turtles with [remainder who 5 = 0] [/ f. O/ k  Y5 ~# v2 v/ K8 E
set close-mates  (turtles with [self != myself])with[3 F7 }) j1 a) [8 t" V
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
: l6 |) M# i% Gand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
5 ]7 L+ G. \7 D4 N; K: mand remainder who 5 = 0 0 x9 |5 x( m* S7 h$ t9 B7 z8 f. G
]                     x2 l3 m! E  F. g2 ?
ifelse any? close-mates 5 J: e; E6 \# r0 p* E5 W8 ?
[                                                               
( K+ K; _3 r- `3 F! A& cset closest-one min-one-of (close-mates with[self != myself] )[distance myself]+ C# F+ q$ {3 X8 s3 _0 [& f
face closest-one
9 w" Q! U( o- |+ z& @rt 180/ S! {: B4 ?$ c3 L0 i8 M8 v
fd random-float step-size4 D* `; B( e0 L. C  _% ^; a
avoid-walls
; B& b9 z( q& n1 u& @  E4 ^' Q! Eset stopped? false]
1 |' z4 O9 W/ D- b" c: q6 X[set stopped? true]
2 m4 ]  v& p% w& q" J5 ]]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成7 a# {5 A; j; F% d+ n$ H1 X  t
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
& E, `+ u, n* y* H4 i1 X/ ~则可以顺利的终止go程序
9 T) {0 _* h! m0 d但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-7 10:15 , Processed in 0.016247 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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