设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5580|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
/ I" g& ^5 o7 {9 \" Tto go: C- G# d- J7 k7 [0 M' v* ~
if not any? turtles with [not stopped? ] [ stop ]  
- `' ]+ Y! x) S. V; E5 m. vask turtles with [remainder who 5 = 0] [
# \6 f3 f4 ~2 v7 L0 c3 [set close-mates  (turtles with [self != myself])with[, j( s: r" m# P- V! ~
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) + G0 `# m0 e1 ?& t6 R( m
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
" }- }9 B3 f7 y% T( r* Mand remainder who 5 = 0 ) T6 `( }  x7 M* m6 q( O, M+ T
]                  
$ ?! c; c9 y  G5 Y3 z; `% Z) mifelse any? close-mates : Q+ S+ F, L- Q( n5 z  k
[                                                               
: o- L& E/ R3 W7 Lset closest-one min-one-of (close-mates with[self != myself] )[distance myself]7 j0 Z9 l8 N/ [& Z# S6 z, U  e
face closest-one! \$ i5 B5 t8 b6 K8 b
rt 180
5 U7 @2 ]+ p( N( D) x: H, A* i& u0 Ifd random-float step-size1 Y( z4 _3 {8 X& f' C
avoid-walls
: I  R( u3 \6 S) T: ^) U# t9 ]set stopped? false], S- Q& d' q; z
[set stopped? true]
6 t) U  k0 h* G& q+ d) O- H]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
! @1 `/ Y& Q) V; ?if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]3 i3 v' l9 o7 l
则可以顺利的终止go程序
1 U- D5 l$ q8 T0 j" o+ d但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-8 00:27 , Processed in 0.015123 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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