设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4588|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false0 ^; Z, a6 g/ @% h. ^) T& e
to go; S; E* t5 i) x; d) a  ~
if not any? turtles with [not stopped? ] [ stop ]    e3 H) ~- ~' e9 }. p
ask turtles with [remainder who 5 = 0] [
- M- s- X& V4 P0 Q# z" ]- qset close-mates  (turtles with [self != myself])with[: w6 R. u" I* L. [
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ' B2 l$ P& `3 w$ y1 n( U9 ?) O1 R
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) + n6 j6 ]) T5 _. c* W2 N
and remainder who 5 = 0
! B- A( X: o4 K; L4 c* b1 h]                   / H! H* c8 n/ ?9 m: K# \9 T; x
ifelse any? close-mates
8 j3 [- S9 P# F3 J$ A[                                                               
% I8 w  \: a% y- Yset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
8 q8 e- ~; o) ^face closest-one
& z& Q5 x# h/ F3 J( y7 d; G$ I5 Qrt 1800 K7 I( D, b5 W  ?
fd random-float step-size
8 m. O- d& o) h: D( vavoid-walls+ Y* n# |, f5 U. A* F
set stopped? false]
2 b; w9 E7 M- S* A[set stopped? true]
8 O7 p& a# h% B( ~' l) L. k" ^$ T]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成4 J% Z: @2 K8 K( [7 [
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
2 r$ @% {% w! }5 e0 ^  t则可以顺利的终止go程序
. L2 T5 y% F( M) D# f  F3 y5 z* ^+ O但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-29 22:45 , Processed in 0.015322 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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