设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5942|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false% u" G7 L1 z& V8 f/ W! h9 l
to go9 x* L$ |8 e9 v9 l) o1 S
if not any? turtles with [not stopped? ] [ stop ]  8 ?6 @- y5 ]: c' C2 Q* L* F
ask turtles with [remainder who 5 = 0] [8 H* I# i# _2 X3 \, U) f5 o
set close-mates  (turtles with [self != myself])with[
7 ^2 e; m) X, c+ p(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
: u6 _) }8 R4 l3 g, o7 K7 s8 vand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) " w5 a* i8 |+ }. y6 s
and remainder who 5 = 0
* }9 \+ f5 K, K0 Q* p]                  
; w7 Y7 m% Q- t3 c" u( Zifelse any? close-mates - ?" ~" E# x6 N3 y
[                                                                $ y3 [  c; o) E% r# x
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]- u0 W$ T) F# e: J
face closest-one
: a/ }6 }/ c0 i* C2 v0 E- grt 180
- H! [6 c  U0 p3 U* }' E9 I. z: yfd random-float step-size
! G- W& v/ s: j: Zavoid-walls
7 g7 g; e/ C9 Z; t/ U% v7 X  Vset stopped? false]
& z3 K# M8 e3 Q( J' x$ u1 f! g% g[set stopped? true]   K$ W' j1 ^* V- ?9 Y
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
* b8 l! Q5 @1 E3 }if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
. k+ c3 G0 k( ^' C( `则可以顺利的终止go程序9 ?1 C) V% ?9 r( \
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-24 15:14 , Processed in 0.016480 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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