设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3401|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
% L4 ~* O, g! G" ?2 O! R" Kto go& u' g5 {& I7 y1 X" B# ^
if not any? turtles with [not stopped? ] [ stop ]  , m7 i" g2 A" h( W$ ]6 N
ask turtles with [remainder who 5 = 0] [/ Y* A+ w2 }' g, Q( K1 A
set close-mates  (turtles with [self != myself])with[
9 K' r( ^5 s1 X5 b# J( D: c(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
+ W. x# U- F  u( X9 P6 R6 C0 l" N: Hand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
% G7 d+ s' M4 [+ h3 _3 U( Qand remainder who 5 = 0
7 G/ J4 p% U6 |- o]                   ) W1 z& q+ j2 T, Y* ^- O' a6 u, G' h
ifelse any? close-mates 9 x- |, V2 g9 J, O8 k: e4 z( y) e
[                                                               
9 J/ B% _- u( n* B% A8 cset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
4 C$ L) _: `3 `: L9 L8 ]face closest-one
% J7 b' G/ L( t7 Krt 180  U: T3 r) t+ J7 N
fd random-float step-size
7 H5 N4 ]9 H6 Z1 eavoid-walls
' k2 k) U) W  e. p# Lset stopped? false]3 b& P1 [( ?* S: [- y% b3 _4 j( P
[set stopped? true]
2 @1 x, @4 l, K3 f" e* C% k]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
0 q5 ], R: |, j  Yif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]* ?# k0 V3 q3 j+ e2 {
则可以顺利的终止go程序3 K! p/ C- j) B7 R2 \) [! r
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-9 21:06 , Processed in 0.012135 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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