设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6240|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
0 l4 D* Q/ f1 G, V/ L( Hto go, v4 ]3 ~' F  I3 \  G9 d% `
if not any? turtles with [not stopped? ] [ stop ]  % `3 |7 X+ p/ q: z
ask turtles with [remainder who 5 = 0] [3 B3 `8 f- X& ?/ `
set close-mates  (turtles with [self != myself])with[3 X1 E0 Y7 l$ C8 `7 D4 u; I; A: v
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
' \, n( ~* v  q2 h9 X) L- @and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
3 @3 b, q0 F5 j8 aand remainder who 5 = 0 * r1 f: p7 _2 F8 s& a, \
]                  
. N  d$ g' E% ?/ z. `; Q3 F; Xifelse any? close-mates
+ U+ ^8 G$ o# l. X0 `3 A[                                                                $ C9 p7 R; Q: l5 l# y8 B9 P2 Q
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
$ x% Z8 o- w% Y* hface closest-one
, z) \# [& b  ]+ _! ]& w9 E/ _rt 180
6 r7 L6 x" G4 _3 n  O! Q+ Zfd random-float step-size# A" A' S  g3 O8 m0 y6 ~
avoid-walls+ P, S2 Y: `- i4 U' `9 d
set stopped? false]: M# e5 g: |" B/ X9 l
[set stopped? true] 3 W  B& U7 Q; X
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成4 }( W2 k! w# E5 }  P
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
* V9 H$ h, p6 o则可以顺利的终止go程序8 S0 S0 C3 T" x4 x! D3 k
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 23:46 , Processed in 0.015874 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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