设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6219|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
6 M1 P0 `- v2 t: S0 ^to go
& c4 U5 U  Q+ r/ g6 ^+ hif not any? turtles with [not stopped? ] [ stop ]  - x. s" `5 p3 |2 k* l2 @) @
ask turtles with [remainder who 5 = 0] [0 C+ n2 s- S- L% K- {3 G
set close-mates  (turtles with [self != myself])with[; ]0 V7 d9 B' G" `9 d3 u8 L
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
1 f( F7 K0 F9 {: S$ w+ gand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) ! w8 y) ]  L' R" o1 Q# W
and remainder who 5 = 0   k  ]+ b" \( T0 E
]                   4 @: R6 K, V7 p" V
ifelse any? close-mates 5 [. j% I3 x% O5 z. S" ]
[                                                                + |1 R- `: L% R3 M
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
7 E0 a, y* G0 D  c4 nface closest-one: _4 g$ q1 Q; x6 x( k) X
rt 180/ w5 E7 K/ O: L8 e- q! z
fd random-float step-size  ~5 S- Q% Y6 b- i
avoid-walls7 g' i3 Q! B# e* ]/ g7 X# T
set stopped? false]
  B0 X4 v3 b( w- q$ R3 D$ p[set stopped? true] ( {7 w4 T, g; R6 w3 O. N" k" `2 X# a
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成/ ^; f: ^6 \6 p: Z& t% R
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
) F" V) q9 I4 C& t6 N  b则可以顺利的终止go程序
  ^8 K: H  \% ^% g) G, ~但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-1 14:04 , Processed in 0.014359 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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