设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6579|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false5 e9 \6 B* r% k) X5 K
to go; D6 Y: e4 T3 w3 i- D# ?: _
if not any? turtles with [not stopped? ] [ stop ]  
* h: v$ `/ x  K7 iask turtles with [remainder who 5 = 0] [
9 z. P2 J# M( _+ d% {4 \set close-mates  (turtles with [self != myself])with[4 g  T. V1 @2 _( E) s0 ~( q) u* K
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) $ M3 r" H( H+ ~: W
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
; n2 p/ \( L0 zand remainder who 5 = 0 7 y! [. ?# m+ z2 d. A
]                   3 |1 I' u+ Y% h, h
ifelse any? close-mates 9 T. v6 ^2 K  l, ?9 f
[                                                                ( R" N+ z$ i. E
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]2 D: C7 N. X/ \1 h
face closest-one) Q2 i4 {6 d5 D" u" C- @
rt 180
/ c4 H6 B7 ]1 F3 S- v; D6 P5 wfd random-float step-size, m# @9 [/ U* [1 u* j: B
avoid-walls3 M. t" @! _3 @) e/ L8 G0 {
set stopped? false]  m9 z8 y- O& u/ _4 K
[set stopped? true]
: r8 Q, L/ V: P" n" e/ \0 r  ~]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成3 P5 S' }' R# m! V. t& [
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]$ p: {/ `1 g7 O& }- v& T" ?
则可以顺利的终止go程序4 ?% Z- h. A1 {6 E5 J; f, S
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-24 07:18 , Processed in 0.015766 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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