设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3462|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
6 k; d; Z4 J# K" B1 ~/ j( Xto go& m' _7 [- |$ O% ^0 v
if not any? turtles with [not stopped? ] [ stop ]  . f2 |0 J7 n" e+ J4 K3 K6 d
ask turtles with [remainder who 5 = 0] [# _, a( ^/ E) F/ `
set close-mates  (turtles with [self != myself])with[  |& H! h0 \% Z; f
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
3 N) B, ?+ j7 M: Pand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
: l3 O, s4 L) M# |# Yand remainder who 5 = 0
( n0 u$ d3 j$ c6 w3 G3 L]                  
, O5 \& f) V/ ^1 Zifelse any? close-mates + L7 s& h4 I+ U8 F
[                                                               
) q9 K& K8 B$ O( t& I" Fset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
- W2 |0 D3 w# Z  L6 Uface closest-one3 t8 a% u' J) C+ I+ j0 z' O
rt 180
, _8 z2 u$ m/ E5 L3 E+ |fd random-float step-size% W6 P8 m+ ~2 r7 T8 F
avoid-walls. S! ^$ [- ~& j- }
set stopped? false]$ z/ ^5 T$ i2 t$ ?
[set stopped? true] 1 y/ {% P2 H" }4 `, k; m: _" h
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成) l( F$ E+ h/ R# A1 v) U
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]( b7 S; F6 j* k' z
则可以顺利的终止go程序4 ~2 P1 o7 f$ o5 G! @( E- s
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-4 22:03 , Processed in 0.014518 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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