设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5584|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false9 T' y- H0 [. C4 K
to go
  J& ?+ |6 p+ }1 Y8 Nif not any? turtles with [not stopped? ] [ stop ]  
! D+ F# r6 i- a& Pask turtles with [remainder who 5 = 0] [
# r7 B8 n: [4 `( o( n/ e( I7 o  `set close-mates  (turtles with [self != myself])with[
0 P/ ~  z6 Z+ [1 ~- N4 S9 c1 O(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) / W9 T) z, p3 P7 s; [
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) $ |9 Z  i- Z6 ?% l& u. q0 V* d3 ?; M! F$ ~
and remainder who 5 = 0
4 U/ N4 M6 L; K, \]                   8 \" m9 S% j7 L( J& X1 `( b3 l2 ^+ X
ifelse any? close-mates
: U& v  w. P1 D9 R[                                                               
) g: C9 H5 ?  ^/ J) m3 eset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
# d0 N5 u' q6 }" K& I+ q! I/ ?face closest-one
" ^; y; l8 e  l: U" s, i2 irt 180
) O7 J# H: ~! ?, n% y0 s& Wfd random-float step-size
/ E9 f/ R' [) Davoid-walls2 k+ j8 B- O/ ?8 s# i
set stopped? false]: H/ o/ g- a' ^# ~
[set stopped? true] - o- H5 l9 w: G9 [) v' h
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成$ F7 o- W( ]% i4 D0 i$ _+ P
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
+ f, t# x* f6 x+ i% t则可以顺利的终止go程序
! ^5 m/ T$ f/ _- k* ^: K但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-9 03:12 , Processed in 0.019828 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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