设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5553|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false4 e" g( ~/ ~. C% o, p* H
to go& Y' D0 w4 b7 V9 W
if not any? turtles with [not stopped? ] [ stop ]  ( F; ]5 C( M0 `( u, Q4 p- B: v0 P
ask turtles with [remainder who 5 = 0] [
# d  N* T# F" {0 X0 }% u6 Sset close-mates  (turtles with [self != myself])with[" K* [! ]! H5 |8 E( Z% H1 w, Y
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) . v; d; x) H, v3 W
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
( i5 L2 F9 v4 m/ d- t2 land remainder who 5 = 0
7 w0 S8 B' K0 t3 v( V+ c5 v3 u2 r]                   4 n% a" k: m2 D. @4 w, ^  b
ifelse any? close-mates . S: l5 E2 ~9 o$ H  A% |- ^
[                                                               
8 t! g) h5 ^2 k& W) l; kset closest-one min-one-of (close-mates with[self != myself] )[distance myself]' W1 r. R& G6 @" C$ {: M& D
face closest-one9 q; P. N/ b) b( h3 Y
rt 180/ M( m5 K& Y# k& d3 M+ l& K
fd random-float step-size
" N; a1 q: R  c3 T* ]# t7 lavoid-walls
: O! H3 E6 [, r. U7 Mset stopped? false]
# N# ]- z2 w' G9 z9 w& R' w+ a+ E[set stopped? true]
, E! m6 i# y1 t$ q% K]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成& C3 ]  Z* v, ?6 g: l: h( m, ]
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
7 n+ [& I) Z+ m6 i则可以顺利的终止go程序6 ^8 R0 H+ k4 d5 \- w+ [& F: Y- z: q( N
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-30 23:16 , Processed in 0.018273 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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