设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5260|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
- h; R! B% E: i; q' }to go
2 P* M$ t" r6 kif not any? turtles with [not stopped? ] [ stop ]  
( I; e, \9 U& s! d, Q" T2 Aask turtles with [remainder who 5 = 0] [
. I) s% u  L7 u* k; sset close-mates  (turtles with [self != myself])with[, D# U- `6 S0 X( q4 [8 B; \7 k* g
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ; w5 q9 ^/ z% O6 D
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) - g7 b; s4 H9 b% x9 ]# k
and remainder who 5 = 0
9 `9 |1 ?( D0 x8 u) W1 C]                   : a/ x6 X( X7 P7 g- i/ K1 s! p  l
ifelse any? close-mates
! M& ?2 M$ f# \8 Z& J5 `, e[                                                                7 K; t' d* H) J% s
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
$ I! u3 t% l7 L* b9 h8 \. i) D7 jface closest-one. [2 ?$ F7 `7 q/ a
rt 180
5 M9 l, y% [* _' A7 J$ Gfd random-float step-size) J/ k9 ~, z0 d  d; O% z
avoid-walls
* C4 q3 L; `  Z9 n4 e# fset stopped? false]8 I( R! \  @  n# b+ v; K. `; r
[set stopped? true] ; h7 o( v2 a7 @
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
+ A1 h. n" L$ [if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
9 h' R2 T' B6 _则可以顺利的终止go程序
/ E" C! k; ]$ n0 m5 a! l1 w但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-10 03:08 , Processed in 0.013891 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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