设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5686|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false- h3 a$ Z! L5 z1 z3 L* n; [
to go- g5 Y$ d: S; S% u0 n
if not any? turtles with [not stopped? ] [ stop ]  
& J; f2 a  ~9 @, h/ P/ zask turtles with [remainder who 5 = 0] [
1 n/ [+ s! B/ T/ m  bset close-mates  (turtles with [self != myself])with[# c  _, K, Y& T( B9 F% v% u
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
6 Y, t5 `0 c* g) D! S, sand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
2 T6 C7 l% Q% n. c8 Qand remainder who 5 = 0
# h. X9 }8 D% T4 G% J]                  
( N- N9 g( X( X6 |* \& F, rifelse any? close-mates
( m( j1 X# t4 ~[                                                               
. \6 ~5 d8 O/ |( h2 B. Tset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
# I: R+ ^7 @7 L( Q- uface closest-one9 {1 u; W$ s6 ^3 o8 N: ?
rt 180
* n  R' u5 H! P- B9 Y& Pfd random-float step-size1 ^7 i  w& J  y5 p2 V) C
avoid-walls
" p3 Y$ b6 O: C$ E! o* @set stopped? false]6 C7 ^. `4 N7 H8 w  H( d
[set stopped? true]
# {; Y* f2 D+ q1 N. t]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
* R% X# ^6 m! I, }7 J% J1 ]if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]+ L& B+ o. W3 E$ V: g; }
则可以顺利的终止go程序9 I; G. w9 \& E1 }2 X
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-4 21:43 , Processed in 0.016239 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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