设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6371|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false+ Z; `; {4 t, [$ }' U4 D+ N  k
to go
% K: L7 |) ?1 A$ A+ O! Pif not any? turtles with [not stopped? ] [ stop ]  
; m5 E& N1 a$ g; z6 `ask turtles with [remainder who 5 = 0] [+ O( W0 ]( E/ q" y% T& |: M
set close-mates  (turtles with [self != myself])with[
# T1 p7 S4 I* m(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
3 w: o' }) u( s; }$ ]- W4 k" {) g7 Sand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
5 c& Y0 B# o% e. Iand remainder who 5 = 0 ' f; ^  d0 f. O9 \
]                  
( |7 P; U" Z2 j% O2 Xifelse any? close-mates 7 c9 a6 d8 ~+ t% @
[                                                               
6 Y; ]3 h8 v& a6 l/ e! hset closest-one min-one-of (close-mates with[self != myself] )[distance myself]/ x& x' ^1 h' J
face closest-one
) U) e' f' I- u  P: q" N  Prt 180" P6 C6 B, ?0 r9 o( X
fd random-float step-size
. l3 v" x1 m0 L# X& [* xavoid-walls5 T7 |+ E  _- M  b4 Q& x
set stopped? false]. b! i' @. J4 j- H1 p0 V
[set stopped? true] * e# `; D5 R8 j8 ]( |0 o
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成/ b# }$ P+ ?# \
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]9 N- V: b5 Y: o+ _1 |% q% x6 d3 f
则可以顺利的终止go程序  C" C7 Z! j# Z) B5 D
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-23 17:29 , Processed in 0.013297 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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