设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6194|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false; I1 p! L6 q* E' e  C7 k! u
to go% S7 _4 L. D. W$ K' ~
if not any? turtles with [not stopped? ] [ stop ]  
5 ?1 G2 Q, K8 S0 U% d  Mask turtles with [remainder who 5 = 0] [: J9 j7 O0 d6 f) r- R7 _" g
set close-mates  (turtles with [self != myself])with[
3 e- W5 n3 n+ h% k(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
1 P: ]+ D$ c, Q' o& Band (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
: U7 A/ W  m5 _# ?0 Z5 [% tand remainder who 5 = 0
5 i3 ^6 Q: T- O% h% m2 A/ S]                  
* C, ~' a  |, [; _ifelse any? close-mates ' b( l% p' b' W8 Y8 q
[                                                               
% ~& h0 [) K% C, c1 M# Sset closest-one min-one-of (close-mates with[self != myself] )[distance myself]. @* J5 }9 R3 a' V7 E) E- Q
face closest-one" t( d; D* a" S# W: d& ^& \
rt 180: Z+ G0 M7 a" `. Z) I
fd random-float step-size
6 B5 u0 g1 M# j  Bavoid-walls3 g: b' p( r+ R+ \+ ]4 H, m+ G9 U
set stopped? false]
- ]' ?( g1 U& V[set stopped? true]
  d0 ^: }/ g6 X7 r3 E& J/ {8 N' ?]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
! ~5 F* o" g, I0 Q# F7 Tif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]2 x" N- e5 C! l
则可以顺利的终止go程序
/ T, ^: Z9 i7 w但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-26 20:39 , Processed in 0.014234 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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