设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6013|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false5 }4 |3 a7 a3 `' W' B
to go, M* [0 l# T. F2 L: Z
if not any? turtles with [not stopped? ] [ stop ]  
! j. h+ m6 S% Z9 Y. t+ rask turtles with [remainder who 5 = 0] [
" r. U) q3 z& {4 D+ Y9 \set close-mates  (turtles with [self != myself])with[6 h+ S9 N7 h  U. [; e& M9 h
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
# _  y) A, P5 s8 x% ?and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
. V3 C7 C+ o( Oand remainder who 5 = 0 8 y8 R/ Y) ~4 O. [
]                   # g5 E; h5 _9 j# q- W7 V
ifelse any? close-mates * l! k& C+ y; t' a7 R
[                                                                3 U& I1 @' U) m5 q; o
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
( ?% {: ]) k. b; N9 L' U/ Dface closest-one, k  C  r) m; E  Z. U. X# M
rt 180
+ i: Q, |4 M. r& L) G% j6 xfd random-float step-size, v9 P) p( ]0 J& X( V& Y- i% _- W
avoid-walls9 A9 G" h. Z( t# G
set stopped? false]
4 ~& c% t4 B" p, B[set stopped? true]
' p% b& @  v2 q0 x6 i' k0 {]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成+ W/ T! h( p2 D6 o
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
' u1 o/ P, ^: f8 Y2 s则可以顺利的终止go程序% l7 s) H# Q2 _- D% Q2 a) _
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-8 20:08 , Processed in 0.018041 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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