设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5690|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
: g9 R8 t$ f9 l8 s% f( Zto go! p& Q5 ~' ?- O. V5 I
if not any? turtles with [not stopped? ] [ stop ]  
) @, z7 U  ]+ ^% {0 Task turtles with [remainder who 5 = 0] [  ^5 o, `. J* d% k
set close-mates  (turtles with [self != myself])with[
7 U4 @  b- Q: S6 U! q9 @5 p(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
4 {- g7 Q! s4 _3 s5 Z- ~and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
8 P* F: f! U% t# C" zand remainder who 5 = 0 ! G) P; N  g7 C8 y3 ]: H- N: i3 M
]                   - v% p% Z9 s* X
ifelse any? close-mates
* z& v7 r6 t  J. G: @. p[                                                                7 X4 U8 ]7 \6 ~! j3 l/ L4 }) t" G
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]9 X# }4 \- i# M, P6 |- o. c
face closest-one5 T" k: T" z( A* {7 o
rt 1807 l8 k8 h( q$ f0 n' `& f
fd random-float step-size
) k$ F+ `6 C0 o, Gavoid-walls9 n/ F' ~' j! M9 f
set stopped? false]
+ q& C) L) P1 M7 F% o[set stopped? true] ; y9 Q" o  @' e9 q
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
# Q3 }3 K; q9 r) M" Cif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
7 n, m+ f$ G! v9 Y7 Z+ a则可以顺利的终止go程序/ b. m* E. v" O0 R
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-5 06:28 , Processed in 0.016825 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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