设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5806|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false0 @- g- z! ~5 ~5 U! L2 ?
to go" s) l5 U: ]* C1 H  O: n
if not any? turtles with [not stopped? ] [ stop ]  1 S" F) W. f+ q/ w' Y- t
ask turtles with [remainder who 5 = 0] [/ h/ O9 \0 H$ K) C$ t4 n
set close-mates  (turtles with [self != myself])with[0 a8 Q: Z/ {- g5 Q. X
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
0 m" r2 x% v, z& B* r8 U* z- fand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
+ ]3 u& b* I: `% b2 f6 }; Kand remainder who 5 = 0 * I2 J5 B  Z6 y: v  D
]                   / o1 i5 ]1 {' c2 V
ifelse any? close-mates ! N! ^) S8 i; Q6 M
[                                                                $ M$ Y0 o- A% {
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
  V+ d/ g) o* d, g) a  j. Mface closest-one
. S! x- V$ @9 U4 Y' u3 o$ O( ]rt 180
0 [  s, A4 S9 \5 Z9 Tfd random-float step-size
$ O3 V7 D1 m( R. }avoid-walls
" q+ }; Y! F: [. P' y. @set stopped? false]4 f3 Q* k; l# ?, P' n  R3 D& D
[set stopped? true]
, z! Y( Z8 b" i* h5 C) X# ?]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
1 |/ L' ^0 o1 t0 Qif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
: v) W1 ?) k; Q# ?' H) c8 y& x则可以顺利的终止go程序. P  m  |7 n% N2 P
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-30 05:45 , Processed in 0.018475 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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