设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6044|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
% }+ {; Q/ p# D' ]( g* |  Kto go. A* A4 N3 r* Y6 p& a
if not any? turtles with [not stopped? ] [ stop ]  + x  F' y. m1 m/ o8 B8 r" F# S9 u
ask turtles with [remainder who 5 = 0] [- ~# F2 M3 U6 {9 u. U
set close-mates  (turtles with [self != myself])with[6 S! a# j' |* F! X; w1 m
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ; u/ `: {" ~- o8 ^9 ]$ \2 x! d
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
. e8 D3 Q0 D, `2 r. @6 a, X& Zand remainder who 5 = 0 0 i& [0 `  d7 l4 O7 A: V  x+ z. A
]                  
  e: L9 A6 l& I0 R1 U  g: oifelse any? close-mates
4 m4 a7 f) w! U8 b' t3 ~- V3 l4 f[                                                               
/ x& z" R) U- v  ~, h) bset closest-one min-one-of (close-mates with[self != myself] )[distance myself]: ?0 T  \( k" h' A
face closest-one
7 _) R0 y, v! U# jrt 180+ F, Z- j; e, w1 g6 F/ P
fd random-float step-size
( T& B8 P6 v$ e: ]& _9 l( zavoid-walls
: m7 N- e/ Q1 M" l( }; b' s9 @set stopped? false]8 B* v$ w3 T8 \0 W% o% X
[set stopped? true] " D7 m0 h2 t" `% t5 K
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
6 d, M1 s! l: S& }1 aif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]8 I; Y' _3 r* Y
则可以顺利的终止go程序
) c* z9 a; ~0 v. E2 T但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-18 02:12 , Processed in 0.023668 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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