设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6167|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
) O" P8 |8 T9 \: r/ ^! ^1 r# Uto go
/ j/ J, _3 {! H) ~% i, o1 Wif not any? turtles with [not stopped? ] [ stop ]  ) Y* |+ e, a$ b$ {  i$ }4 T* e* T" c
ask turtles with [remainder who 5 = 0] [- T0 S4 ]3 A# r8 I6 Q7 Z+ d1 s
set close-mates  (turtles with [self != myself])with[& ?3 k/ `& c$ C
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
) y, ]3 g" z9 e0 g' w( O/ z( Qand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
: x: }3 a4 l: e2 H, @1 k+ p% `' `6 ]# Band remainder who 5 = 0 ) B. B6 l8 P& u% N
]                  
/ C/ E* W2 I5 a% }" S8 T) }ifelse any? close-mates ; L/ S4 V# i$ x
[                                                               
, G4 s7 n. }0 V( z' C: m& P6 y4 [set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
$ W6 S% @! G% C* \( Wface closest-one
  F  i2 u( B' y- b7 k1 ?rt 180' }7 G4 S0 I$ O7 b4 T% S
fd random-float step-size& o) N4 p7 ]4 Q
avoid-walls+ Z' c9 e/ o; r, @6 w/ T
set stopped? false]3 j; q6 w' X- ?5 j2 P
[set stopped? true] " U+ b9 Y( z; k
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成! N. U8 Z# Z$ `+ y1 {
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]' a$ X$ g/ z# }% Z
则可以顺利的终止go程序% x7 K9 a. L- `: w3 N" W
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-17 20:07 , Processed in 0.013401 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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