设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3457|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false5 c, F; A4 w8 w7 ?  n
to go) G% J. F3 e+ k
if not any? turtles with [not stopped? ] [ stop ]  
. R0 c0 k' a# y: Oask turtles with [remainder who 5 = 0] [, \0 b9 [0 ], n9 f* P
set close-mates  (turtles with [self != myself])with[- j, N# M9 l8 y- e' h7 b
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) : f. G7 ]0 z: m
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) ( s+ B* s; M- N* o# ?
and remainder who 5 = 0   o' d. n6 n+ ]5 \
]                   $ l% b- z# N6 S' I% z2 f
ifelse any? close-mates ( I: ~* [" q% W: d
[                                                                # v. P  V4 \2 f: l2 e
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
2 ?  o# t3 @; @) q/ l. \/ `face closest-one
( O5 }- l' X2 C+ Z: H# wrt 180
( F6 t' }* l) C0 xfd random-float step-size
5 ~: s2 n' K, q% R$ tavoid-walls
4 O& F! ~7 |# r" t( v8 i* f. s( mset stopped? false]8 W3 A/ V2 l( B
[set stopped? true] $ t$ ]# G" i7 H. x3 e2 [  S
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成" Y6 N1 y8 V4 ]" E
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
7 Q  V3 D) i/ u. p" Z' ?) O/ ~则可以顺利的终止go程序  J# w& t) d" r  S% v
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-2 11:09 , Processed in 0.012108 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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