设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5406|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
$ O7 K$ g! y2 Ato go6 c4 V, ~3 M4 X9 l6 {( @" X
if not any? turtles with [not stopped? ] [ stop ]  1 W, c) a6 `4 h7 N5 J/ V# G
ask turtles with [remainder who 5 = 0] [( d# q! l% ^0 a  X! Z9 T( F" s& @/ k
set close-mates  (turtles with [self != myself])with[* {6 c( Q) l6 ?
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 4 A% w9 I) Z, H* l$ x5 w
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
# w5 J  W2 N% _, s, W+ vand remainder who 5 = 0 ; G) |* `' S( b1 G
]                  
7 H2 `. {; T9 W0 u6 |ifelse any? close-mates 9 U5 l, K7 u0 ~+ @  }, P
[                                                               
! E% i& C6 t3 C2 G) [set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
- Q- d8 y; B% l& `% z) e$ fface closest-one
1 n; F/ Y% z& s( crt 180/ k4 K( d( B3 a
fd random-float step-size- {; o: ^+ b# f" G4 [$ }- X
avoid-walls6 S% r& j8 I. D8 k( R2 X6 U
set stopped? false]- P( R( O) m2 q" m/ y0 ^# c
[set stopped? true]
! V! x6 h. G9 L3 ?' e7 `+ Z' |]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
! ]3 P* y. K0 F, s4 w2 |2 P2 Aif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop], h# r# o1 Q* S! h5 Q' N4 [, h2 \
则可以顺利的终止go程序
/ F5 [  h4 w+ @; p* V但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-15 14:26 , Processed in 1.652924 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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