设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5934|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false' F" e+ g" Q4 V+ ?( k/ D; C2 f" G) U
to go+ b, T) J. `$ w& t* _
if not any? turtles with [not stopped? ] [ stop ]  
; }7 F6 B, p( oask turtles with [remainder who 5 = 0] [5 i1 P: A. ^. s
set close-mates  (turtles with [self != myself])with[$ O% J; c7 ^' y
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) / ^* c8 _- L9 t
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) & B4 b* z9 G$ _. ~; O
and remainder who 5 = 0
  _7 H! @+ P( \% C, B]                  
  r2 Y+ o! Q. E" e, N0 z7 E2 C( hifelse any? close-mates
5 S! g7 K+ r9 e  n  u[                                                               
7 M) W( ?$ B: j* j0 Mset closest-one min-one-of (close-mates with[self != myself] )[distance myself]( R3 x+ w0 B! {. u" R, P) v# t* h
face closest-one
5 k& {5 _  G9 m# F) V2 W; H+ qrt 180
5 ^0 ^1 t5 n' ^2 y  kfd random-float step-size
( L" f! _$ m" }avoid-walls
3 ]: e$ S0 X0 y/ @  d2 Lset stopped? false]7 C7 h9 {$ Y) `1 F7 P+ \0 j2 c* U
[set stopped? true]
: `( [/ k. }1 N1 L% ]  i3 y]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
3 r$ x. G! _  B$ }/ {, I% zif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
5 J/ ]% y3 ?7 f. L6 }则可以顺利的终止go程序" c% G8 a3 o9 Z) v" K
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-22 19:14 , Processed in 0.016551 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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