设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6050|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
) W# s2 ~% |( O8 [9 |to go$ A/ C6 i4 @, G, D) b" @
if not any? turtles with [not stopped? ] [ stop ]    c5 ^3 h6 N, e! ?) ?/ ~$ C* j  Q
ask turtles with [remainder who 5 = 0] [
. H4 C- L# D/ C& a$ jset close-mates  (turtles with [self != myself])with[! B" e* f4 l! I# e  e
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ) f0 a* [, N; q5 o1 w
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) . q7 m3 C& q8 b3 L# w8 a' W$ l
and remainder who 5 = 0
! _! M7 x% ~; ^3 T]                   ; k$ X! ~  T9 ?, G1 Q; n
ifelse any? close-mates
( Z( T- c, l! ^[                                                                + `* c/ ]0 N' G; W
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]5 l- Q/ J  d3 Y% x( P+ j
face closest-one
& W. d  U7 @) I' S% [7 ^" f4 krt 180
5 V! H. z7 S# ^- f" {: t, S" s6 Wfd random-float step-size; f, _. _" z; n9 ~2 v- e% [- x- w6 q
avoid-walls2 E+ [( }% |  y% Q
set stopped? false]
% y! D: E, I+ S. k& Z0 ^[set stopped? true] 5 Y/ q. C% ~# S
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成; P, h. ~6 C! O6 t- Y1 p
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]" i% T5 q1 M& `" S! A  U3 u0 k
则可以顺利的终止go程序
: k3 C, Z# n* w但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-21 23:40 , Processed in 0.016517 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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