设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6524|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false3 W' C* S. M! N3 Q
to go& V, }# B3 ~/ J- s, i' N
if not any? turtles with [not stopped? ] [ stop ]  ' k/ W+ b  _5 |2 t
ask turtles with [remainder who 5 = 0] [, \$ |3 k/ @1 v, m' z0 e3 i& ?# [
set close-mates  (turtles with [self != myself])with[
1 O  V5 h$ \' Z* y6 N(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 0 p$ w" `) _, h$ s1 O
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 0 q6 D) X# T% n* y
and remainder who 5 = 0 - R4 T% U& p8 v7 ~% D
]                  
1 T1 F. ~$ I8 D# \3 X* fifelse any? close-mates ' U6 n3 n! q; V1 k
[                                                               
. q: y& R& ~, o* S/ kset closest-one min-one-of (close-mates with[self != myself] )[distance myself]/ ~, E/ K9 F+ a) C# n' T  z) U
face closest-one6 `3 R& T) C; C8 }( l
rt 180% s( l, H" u) @* l! a/ ]2 ]
fd random-float step-size4 t$ h* W; t. O8 x1 v* H. F3 Z
avoid-walls/ ]0 u. L& @3 Z- m, f6 n: @
set stopped? false]
8 x; |. f. h4 t; ~' j# b4 O[set stopped? true]
% E9 Z+ q% F7 P& G; T]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
* _3 T! [* a$ ]- r+ Wif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]+ Q' N1 {* c' m  g+ X
则可以顺利的终止go程序+ L) ~: c, R# E$ v" J
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-10 07:37 , Processed in 0.022637 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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