设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6246|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
; E& m8 S4 m  r- U! \to go# o/ E: S$ `( W- `# b: ?6 u
if not any? turtles with [not stopped? ] [ stop ]  6 k3 m1 Z' ^2 p4 Z3 t  v+ @2 p/ e( J
ask turtles with [remainder who 5 = 0] [
: I" Z$ f( x5 ?3 Mset close-mates  (turtles with [self != myself])with[
6 H3 h7 E5 ^. [6 e(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
  ~  m" z. _  {( ~6 U/ \and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
4 ~/ Z: l4 y) ^% C# I. |and remainder who 5 = 0
, c: E7 J, y, A9 D]                   ( r7 w! c  o% U* x- A
ifelse any? close-mates % o3 p/ W+ e5 ~/ w# }0 O
[                                                                2 y, J: h. o% \0 ^0 {3 r: t
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]7 E+ I1 }* a5 J) w- `! H; r
face closest-one
" H2 ?: p2 }3 i, L# t, art 1803 w6 l/ l2 m* @% |/ g- k) g2 |
fd random-float step-size
+ Q4 h. B9 R9 H; {9 xavoid-walls
2 m6 ~2 |* Z- ]9 f( n9 Fset stopped? false]
! E/ R+ Y, B, e2 p, a! O4 V[set stopped? true]
  J* }& P! G7 H/ Z/ o]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成+ i* {  O& S% A  w! ^
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]- y; t. o. p$ q* O9 V8 @  V
则可以顺利的终止go程序
: ]7 ^. D! @/ J: s  l8 c( V# s- w但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-8 23:21 , Processed in 0.015455 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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