设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5426|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
0 H5 q$ I5 ^1 c9 H+ cto go
/ D$ z+ w4 |2 W! K& d% [if not any? turtles with [not stopped? ] [ stop ]  
7 f/ H4 _$ J" ^$ K( C; bask turtles with [remainder who 5 = 0] [" {8 X1 ]1 x# D8 D; ~& o
set close-mates  (turtles with [self != myself])with[
# s/ d7 t4 a6 X# a1 P- j(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 7 _% S- K5 j& F- r  A  ^8 D% |
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) + J7 K7 e- D; T- {
and remainder who 5 = 0
0 c) Q! d5 i) [$ P6 @- v; c]                  
1 Z! Q. |9 l5 q6 c" O8 o: D2 |ifelse any? close-mates
8 R9 g- r+ U+ t[                                                               
; d, }5 u# x! i: S5 q" rset closest-one min-one-of (close-mates with[self != myself] )[distance myself]; L% o9 B+ D" a# b7 E
face closest-one; z5 c5 ?, K' w5 Y' p
rt 180
- l+ q0 A5 ?. zfd random-float step-size+ ~$ R% G. l. a  J% [- q9 K$ [6 R
avoid-walls
" h6 @' j2 |) c; B7 s9 d; V$ Z" [# t. Wset stopped? false]
; V, u& C' x' D6 O' _[set stopped? true] 1 ^/ @6 K6 \8 \, i! O
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成7 Y: u  Q  M% {0 _5 e2 v
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
2 N$ X! G& D5 K- p* T! a+ B则可以顺利的终止go程序
1 X5 d9 p$ K6 K3 W' t  u1 C但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-17 16:44 , Processed in 0.017062 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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