设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6239|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
1 A' A4 C5 [3 Mto go, X& l: e  N/ o& j
if not any? turtles with [not stopped? ] [ stop ]  
0 _& ?0 s2 J- G- p7 \ask turtles with [remainder who 5 = 0] [
, r$ d9 T3 G% [! N- _, S+ h6 o% Aset close-mates  (turtles with [self != myself])with[! O: a! I1 R( `% p; T. Z; }
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 7 _; n$ Z0 G& g
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) ! n+ h7 O) v' h, C/ r9 E
and remainder who 5 = 0
  o5 F0 t2 z+ s/ B0 A9 t. \+ s- c]                  
$ B, a6 S3 @9 L- S3 _: J6 ^ifelse any? close-mates 3 Y( e) Q+ [. ^# a1 Z8 C) l
[                                                               
3 ~% B% G7 ]( H! i9 Dset closest-one min-one-of (close-mates with[self != myself] )[distance myself]- T- x' K) [' {7 G1 W  W' H
face closest-one1 [  s3 T) G, b/ f, z
rt 180( ?$ F# Z  q4 q6 V
fd random-float step-size6 J# s& M0 D+ B& d+ I! a9 {
avoid-walls) @8 U# Z$ `: N+ u$ e$ q
set stopped? false]
. t9 h, [. d8 J/ p& ]4 C* r[set stopped? true]
  @2 t1 ]$ [9 |& n5 j3 o+ ]" []
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
# G$ B2 P& G) z- x9 J. e: f2 oif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]% N: j# D  X' I8 ], M
则可以顺利的终止go程序
: U7 N; |) W" D- y$ D但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 23:16 , Processed in 0.014785 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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