设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5568|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false+ g0 Q) q- n& m. t1 _2 H
to go. b9 N% I# ~( G2 v! i, O, c% f
if not any? turtles with [not stopped? ] [ stop ]  
* q9 r& L' n" t  B7 W. V$ h$ Rask turtles with [remainder who 5 = 0] [
8 ~8 b/ M1 v! |  Hset close-mates  (turtles with [self != myself])with[
6 V% R) @. i. r1 ~3 a(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 4 v* F/ I( e& M: o( B/ b) v8 j
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 3 n* Q# S* m6 [- R, E( \
and remainder who 5 = 0 , f1 a* [/ M2 I/ P& a# F  U
]                  
6 l0 T# p# A7 Eifelse any? close-mates 0 h; \( W2 h- N' n
[                                                                & g. i0 j& H  ^3 q: H7 S3 z& X1 p2 ~, m
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
& n% U6 e; q  p) yface closest-one$ s0 R2 j1 ~7 o4 g& ?0 c
rt 180$ O  ], B8 [* j2 g) y
fd random-float step-size
+ q  \9 X# ~- savoid-walls2 q2 d1 D2 A& K+ R8 R3 g& g
set stopped? false]! b! w5 f# S# Z. T; H
[set stopped? true]
* H+ s/ b' w! w. q4 [2 @0 a]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成" P3 x8 }  S: c9 l
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
* K7 }$ c0 [, U+ X则可以顺利的终止go程序
9 z9 V7 A5 B9 Q* t! g4 E: F; I. a但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 00:21 , Processed in 0.020628 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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