设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6287|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
! T, f0 T* c& k( [" C( B- Ito go  g. g) g7 E8 d5 C
if not any? turtles with [not stopped? ] [ stop ]  
; D9 d; s1 c3 Z6 j7 Vask turtles with [remainder who 5 = 0] [
, \, o/ Y% l- F9 {+ _set close-mates  (turtles with [self != myself])with[
/ A: i! W5 Q0 c$ H: U* |( t* J(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) - g  j' j( b2 b/ P4 Z. \, H9 s5 a
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 8 ?1 S! v6 l: u' U
and remainder who 5 = 0
8 L( b7 V, s7 F3 ]. c9 b2 l]                   2 n! c7 f2 B8 d$ J8 Q& M6 @
ifelse any? close-mates
" c% U. V. i1 m; _[                                                               
1 {  y& |+ K0 j/ j0 fset closest-one min-one-of (close-mates with[self != myself] )[distance myself]4 c' e1 K$ d7 H8 B
face closest-one
) K+ @5 F* J$ Hrt 180# f: U- E$ S4 s7 ~+ _# u
fd random-float step-size$ K: x8 J5 J# G1 S: G4 {4 L
avoid-walls' j4 e2 x2 V" }# v7 B
set stopped? false]  O6 G* U1 P$ F4 a9 f9 I+ s# k
[set stopped? true] ! J- N2 E" c2 h, U! C
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
9 W  J5 |. @0 O9 wif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
, {! R6 z' ?- k4 w, J) Q- a; O" t则可以顺利的终止go程序
8 |" P; M+ [, g1 {但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-13 05:56 , Processed in 0.012760 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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