设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6670|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false% H1 o) |/ n' g. _
to go& h/ u4 S4 I$ o9 H. H3 p
if not any? turtles with [not stopped? ] [ stop ]  
4 W. M* o8 D/ I0 l7 zask turtles with [remainder who 5 = 0] [- g% m. L$ Y) n0 [+ W
set close-mates  (turtles with [self != myself])with[
3 h( W" A; r& _- g# P1 P(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
3 Q$ r! q6 B) ~# Q- W- Mand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
2 ~% T# {0 K: sand remainder who 5 = 0 8 O2 E7 f- ^6 p3 b2 ~- y
]                     [1 X1 z" Q) k- j% u& |
ifelse any? close-mates ; Q2 P+ K. m" \9 ?- _- B) G
[                                                                / h$ c  g+ ?8 x1 G% y7 h& n
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]0 ~+ t5 [1 @2 L6 t/ ^8 y
face closest-one
5 I- G1 ~9 r8 h% r4 A* r/ xrt 1808 f; ^7 U6 O4 C& H
fd random-float step-size9 M) d7 I) @: M0 o' Z
avoid-walls
/ f& C; }: Z! \( j8 p: o7 }) jset stopped? false]
4 Q1 V# w) I* k  c. y3 T[set stopped? true] # ?/ k: u" u, G  ~6 h! j$ {/ e' D
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
( G2 R( l$ u% gif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
% i& Z) d# Y: B0 `- Z则可以顺利的终止go程序
4 k! Z$ V: y! Q但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-9 05:57 , Processed in 0.017110 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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