设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6769|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
) I6 O% Q/ L3 Q: V2 t3 p$ t2 _' L7 bto go
0 F, K+ F8 ~- M# l" v6 m+ v' aif not any? turtles with [not stopped? ] [ stop ]  4 b: E  R9 h% i" |# p3 d; ]" a
ask turtles with [remainder who 5 = 0] [% G- M/ z5 Z( G# A' r
set close-mates  (turtles with [self != myself])with[6 \1 [' t0 P' M( r2 Z
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ! g/ d6 d  |- {7 |$ ^
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
7 A5 G  ~/ g" o0 `" w4 i0 `and remainder who 5 = 0
! [/ `) r: b, Y( m/ Z, R]                     j- R0 ]) b- V1 I  u9 ]
ifelse any? close-mates , m2 }- ?; ]" P" _  C
[                                                               
2 f+ \& z9 A8 i+ w& a2 l. Q% x  Bset closest-one min-one-of (close-mates with[self != myself] )[distance myself]& e- X; ?2 o- z5 a( @; L$ R0 X
face closest-one
( }2 y* a6 {1 B$ g! Nrt 180
" g; v8 y1 n2 g' Z; r7 Nfd random-float step-size$ Y8 P; A7 T5 |9 E# x# C
avoid-walls
, w) s0 Y! H+ e4 ?- z# C& Mset stopped? false]
( `3 }* k1 Q0 Y' \5 u[set stopped? true]
7 q3 h5 e& D# `& J]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成4 r! p1 X7 n% \8 _- z& L
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]/ Y- h% L' h# `; K: E2 E
则可以顺利的终止go程序% z. I  X! P3 l9 _! C* C! |" }
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-21 15:56 , Processed in 0.014450 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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