设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6458|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
8 ]8 y: N2 Q+ c/ e5 j4 T6 ^to go$ \) u: C* z; u: J7 h4 J+ P
if not any? turtles with [not stopped? ] [ stop ]  # \& s: ?/ g; `9 Y
ask turtles with [remainder who 5 = 0] [
" @2 {# `; s8 V5 yset close-mates  (turtles with [self != myself])with[
$ F$ r9 \  g: u( h  u(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
4 }( M) I% y; k2 |- `and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
6 k* Z+ O5 B0 r0 v  m3 M8 z8 l4 sand remainder who 5 = 0
2 }3 p0 F8 o. m" _1 V( C+ Y]                  
/ f  g7 f3 B3 J  W6 t& k4 Uifelse any? close-mates
/ u- I. W, P. v  u+ d. r9 v[                                                                8 b2 P: L0 z; Z* h7 ~
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]; s8 J- s, |3 q
face closest-one* l, v# I7 W0 B& z# {
rt 180; B' z, N8 Z9 t" [7 |! S  v
fd random-float step-size
8 }: Y8 N$ \- g/ E  I, m; Zavoid-walls) y* ~0 H  o/ F& z1 S
set stopped? false]" P: @0 v3 o7 @5 Q1 f1 C
[set stopped? true]
( \& p( H0 ?& h3 B  g1 T]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成% d' j+ b# ^; ^% t* f( @5 S( Y
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
. ~- J) {# ^9 n+ A则可以顺利的终止go程序& N1 x5 y" |+ r5 p: a8 q
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-1 23:11 , Processed in 0.023674 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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