设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5855|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
. m$ N4 K; u& {to go  Y: K9 J! E; h6 C% X: u
if not any? turtles with [not stopped? ] [ stop ]  
1 I6 }9 G/ N% A8 iask turtles with [remainder who 5 = 0] [
" s% |/ N1 |8 ?4 jset close-mates  (turtles with [self != myself])with[6 R. C$ V% O+ E: r
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
) X2 v' D7 Y- L9 b% ~/ [0 [4 ~; H0 zand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) ; q4 L$ K0 J2 H; b; D3 B$ w7 f7 {
and remainder who 5 = 0
# p( m- ~& `1 t]                   " Z( F, ~# Y5 s9 H
ifelse any? close-mates 8 F: N, V7 ?2 U& D
[                                                               
# g& [/ v7 j& I% @4 Aset closest-one min-one-of (close-mates with[self != myself] )[distance myself]' b/ ?, t9 }3 U4 g8 ?0 t
face closest-one
' v( v4 ^$ A5 S) z$ g9 a; yrt 180
5 C) z! j( |& Pfd random-float step-size( ^) F# `" k2 [
avoid-walls3 t0 u' t2 T8 [
set stopped? false]
+ e7 U& l, Q# A; l) a[set stopped? true]
3 ?0 K6 C6 z2 q$ p, []
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
- `2 P, B9 b% c3 T  m# S9 r- Pif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
  u& C$ K! B* M! {则可以顺利的终止go程序
% Y: L. L2 @: A% H但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-8 16:29 , Processed in 0.019231 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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