设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6134|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false$ N+ e+ c, P4 a2 n7 \
to go
5 i$ O9 I8 t9 L: H  [2 `8 aif not any? turtles with [not stopped? ] [ stop ]  6 `0 v8 v2 k) }2 p/ e/ g3 F8 A3 q/ s* ?
ask turtles with [remainder who 5 = 0] [
( }( s4 |* D, p# X+ O4 yset close-mates  (turtles with [self != myself])with[
+ W: m! x  q6 x+ s! X, \(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
; {3 p3 r! e- e- i9 j% n& Iand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) & q, g# c2 B$ M: ?+ t. \
and remainder who 5 = 0   _" L& S) Z' m, x5 U- W5 v# l
]                  
2 i9 B; ]) p  I4 Eifelse any? close-mates
6 r7 T( `2 Y7 K! T! V8 S[                                                               
2 o5 Y7 G2 E  R1 s9 `set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
: r8 `. B8 Q0 k; I8 Yface closest-one
; w% @8 G+ B4 `) S  T! Frt 180
+ {. ~9 A' L/ O: s4 Q- Y, w1 ifd random-float step-size& d( r6 W! d1 R1 H9 v3 M6 D3 _
avoid-walls
$ H) u$ s' p+ aset stopped? false]
- O" ^) f( b  T" n0 Q9 Y[set stopped? true]   i% J5 ]3 M7 s) N2 J( ?
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
( b% ]3 ]; O' U+ Dif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
9 D- p, t0 I* y  S# t& [则可以顺利的终止go程序
9 x: O4 d0 J# q% v( @8 T  C但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-13 16:22 , Processed in 0.016991 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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