设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6559|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false, u3 d: ~/ l5 q: a0 }
to go
6 f% _9 I- o! ^2 O% C- _if not any? turtles with [not stopped? ] [ stop ]  
& k: r. g  l4 [1 R% n( N, qask turtles with [remainder who 5 = 0] [& m+ q8 B, P8 m
set close-mates  (turtles with [self != myself])with[) _  }. u5 m5 ]4 |
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) % E; i, B" Q' R% c* k' @
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
$ x2 d$ ]9 t( k0 E7 sand remainder who 5 = 0 0 d+ G2 V: Z( D7 x
]                  
6 s) Z0 K! U9 }$ z6 z$ Y* I4 R6 U- fifelse any? close-mates
6 x/ m% @! C1 C. o* T4 k[                                                                $ f& c' }$ e! b
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
: e* f! `2 Q9 E; z, _face closest-one
$ i/ x9 O/ ~# ]7 f$ w4 xrt 180
' H4 E/ ^  U: ifd random-float step-size
( g* J  S  d) Oavoid-walls
1 l* ^3 B7 }  e+ r: i* Gset stopped? false]
/ k  M: l' j8 W[set stopped? true]
9 {8 N3 f0 b- d: S]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
$ y6 w% R1 V0 r% L7 e! g  @if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]+ ?2 _. O7 Y2 C4 h. |
则可以顺利的终止go程序( V* f8 |8 t- l7 P5 N0 e: U
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-20 15:02 , Processed in 0.016077 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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