设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6198|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
$ U: B4 ?+ ~3 l" B7 y1 Ato go( Q& D& a7 V2 {/ _
if not any? turtles with [not stopped? ] [ stop ]  
  ]& N" C: `- T. H! D5 k; ]ask turtles with [remainder who 5 = 0] [3 x' U& s" Z8 j4 {
set close-mates  (turtles with [self != myself])with[, X& E! X% v; F( a4 I' v  W
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 1 s8 P+ h9 b+ X
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 2 B! `! c; p& I7 Q) J
and remainder who 5 = 0 , y) ^% X, G( A' Y& a7 l
]                   ; r; L. e  {) m, h5 `4 h! [/ n
ifelse any? close-mates
1 f- M# r/ ^' Z! U8 k[                                                                ! U/ ]/ e; {+ x6 y& `: o
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
0 L, }* X2 `; f5 @* h1 K' x; qface closest-one
; Z! o( u4 H: w* p% ~- mrt 180
7 h: f3 y8 s: q* F4 @; \fd random-float step-size
- [2 W* N0 g6 G4 a* j5 S$ Zavoid-walls1 N1 s' d! u. c" J3 |: r
set stopped? false]
$ v% K+ |* n% z) `[set stopped? true]
4 E3 q) l0 R+ o  Q]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成' u" E& v7 J4 l6 ~
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]0 l* E0 Y! Q1 q
则可以顺利的终止go程序
/ @: J# Y3 x- z7 Q/ T& _2 K/ Z" k但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-28 01:16 , Processed in 6.164661 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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