设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5356|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
) w3 _& h3 c# R; e' i1 Oto go7 n3 ?2 `8 I. t6 x
if not any? turtles with [not stopped? ] [ stop ]  
& ]+ x, @/ \6 n, l6 [7 z0 }ask turtles with [remainder who 5 = 0] [
: i& O7 H. Y" ^2 k3 j/ W9 N$ ]set close-mates  (turtles with [self != myself])with[
+ U; B7 q  W, V( p+ X; K) V(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 7 T# f/ b( f) B) {3 j
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 2 D5 D8 X! A1 |" t
and remainder who 5 = 0
: \- o$ B5 l% B+ A8 e" E]                  
; |/ X1 b* ^# e& D5 Hifelse any? close-mates - c$ G/ y" W0 y5 Y5 U2 f5 L  }* W% n
[                                                                * v% h6 F0 B9 j' a' J( `
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]+ f- T' _5 W7 n) m2 _3 b8 z' o
face closest-one
9 E1 W  v( g, d% b2 S6 j' `* t) n7 `rt 1805 |# {, H5 v$ V' k# j' W9 E
fd random-float step-size/ s( m8 E' d6 e
avoid-walls/ Y6 F) S9 h5 b3 A4 W# o' Z
set stopped? false]
# X/ ^1 r) K9 R5 e[set stopped? true] $ a. u: F" \: K, G1 [. V- S( \
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
' _' w; O# R6 }/ `% M0 t& Pif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]6 U5 ]) v& X; @/ ]) I" m
则可以顺利的终止go程序
" t8 ~3 d/ a% T. B但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-7 08:40 , Processed in 0.018839 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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