设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6571|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
0 w0 h7 m, ?% |+ @5 ^5 I2 Gto go
! _& N3 P( J& @% U. \9 aif not any? turtles with [not stopped? ] [ stop ]  " A2 _* L. o; p; o" U( }7 [5 l
ask turtles with [remainder who 5 = 0] [
  V$ c. e3 i- g' x2 d* Z8 Eset close-mates  (turtles with [self != myself])with[
/ Q% T( L$ C1 q- A0 q(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
- r# N( I2 W5 ~$ {! j) |and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 6 ?' I" M) S1 R5 \$ b) N4 A
and remainder who 5 = 0
& H* ~$ w' L0 U" b2 G% F* \]                  
* o% j- N  l. |& d' {ifelse any? close-mates
' J% r% i/ v. c# E4 M[                                                                9 u+ |* [, E7 y9 C7 L- i
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]$ |: u3 d) _4 b0 r! B5 H
face closest-one( p5 |* n" |5 E+ {7 |
rt 180
6 e% F6 ^1 V2 q. Lfd random-float step-size& j0 P1 c5 E0 Y( r
avoid-walls
5 j) K; ?. X% e$ [5 ~3 `set stopped? false]/ @3 @) ?' F* z8 r1 H0 p( `
[set stopped? true] & b1 _# _. W" |4 C' R. G! [
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成  q  Y: N7 q/ S+ K5 I
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]3 P% |0 e: d- m9 m
则可以顺利的终止go程序! V+ c4 H1 V. T9 {1 ^) @
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-23 03:21 , Processed in 0.018441 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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