设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5122|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
- ?9 M7 k4 H1 c- e0 zto go+ ]  y5 q7 H5 T- p5 w" T
if not any? turtles with [not stopped? ] [ stop ]  
( l: L1 q  c% z* N0 g* }+ K" n! Hask turtles with [remainder who 5 = 0] [
$ P0 L1 N+ e, Tset close-mates  (turtles with [self != myself])with[: x0 [! ^* w3 L
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 4 y$ x" T; M# _5 w) E
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
  {  ]3 ~+ f1 g. U& K+ band remainder who 5 = 0
% r. a3 R! h% m; C* o7 S]                  
3 e' O! Z1 R5 o3 @; m7 sifelse any? close-mates
% E; x2 v+ X7 S! N. o[                                                               
9 P! M  Q* k0 F1 q$ E- m5 h8 x9 O* lset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
" b# [& V9 H+ }- G8 j8 Z! `; Tface closest-one
7 g9 a9 k+ G: K7 q2 }4 crt 180
3 s1 Z, v8 }6 o. l% {# g7 @& bfd random-float step-size1 c& L5 L: E0 q
avoid-walls
! t; r5 i" |/ _set stopped? false]. Q) `' [' \2 b* V2 i, Z
[set stopped? true]
! H# R* e. n  u1 ~' Y" Q6 i& u1 ?]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成7 \; Y1 D+ b5 X* s
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]: b7 E. m# D( _  M2 w$ K
则可以顺利的终止go程序
$ j, W! ]! u/ w9 q9 o& ?但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-10-16 10:36 , Processed in 0.015951 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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