设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6125|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false) B6 I: Y- Q% Q+ _: @6 v/ {5 X
to go5 q7 v. K* W. i) S" D$ r
if not any? turtles with [not stopped? ] [ stop ]  
8 R. [7 }" N$ e1 Qask turtles with [remainder who 5 = 0] [
& u8 k9 Y3 i# d$ `; Lset close-mates  (turtles with [self != myself])with[
4 H6 r. {/ O/ X" A(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
* _) X. k, _& vand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) $ x$ p: K* {# z: h; ]$ m1 G
and remainder who 5 = 0 & n+ F2 S/ q& [& ^, U# P
]                  
- ^$ p1 I2 s4 t/ l( ?  eifelse any? close-mates
/ s2 R" d/ \% m0 D8 Z* B# f3 o[                                                                  D; w1 s$ {! g( f
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
" k8 Y5 X$ S- _face closest-one
1 \$ O, w4 ]0 C+ F9 A6 Lrt 180
& t( F, r5 H4 X; _# Yfd random-float step-size
8 m, m. }) G# P$ t4 v9 R5 Oavoid-walls
+ @$ f% Q3 ?- P( K0 {! h/ dset stopped? false]! P2 X* }' T- F! {' L
[set stopped? true]
1 Y$ W4 [* b+ P, V% Q]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
* B  l& ]. t$ S3 oif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop], O8 |9 M% `* u8 M( d
则可以顺利的终止go程序1 ^& R1 ]( E( }6 x2 l' N# R% \
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 12:30 , Processed in 0.012999 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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