设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6285|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
2 }+ W* c& v2 U" uto go
+ d' f; B! }) Z6 s7 Gif not any? turtles with [not stopped? ] [ stop ]  0 |! S: z: }0 E1 H6 j% R" }  B. J
ask turtles with [remainder who 5 = 0] [4 f8 h, c* r2 M" j5 H( a7 l3 z
set close-mates  (turtles with [self != myself])with[
' [3 X# p8 ]3 s6 P  H! w(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
( K' s  B3 F, i9 hand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
8 J1 Y. y1 u: X$ \, @7 P- h5 Vand remainder who 5 = 0 ) n) @' r1 f7 C5 t1 D- @: j# n
]                   7 @9 h) v$ R- {9 F/ g# O
ifelse any? close-mates
% [7 v6 ~0 ~$ [4 Y% p% _[                                                               
3 t% m: y  n/ Y& i3 fset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
6 q) S7 N! S( {+ k; s8 ]" _1 w8 wface closest-one
  f) B7 O9 X, W- H. g8 g  Grt 180
+ U  R" p: E: _& ~- s, cfd random-float step-size
" f0 h4 x7 F5 ^1 C3 `: ^0 Wavoid-walls
' w4 Z) t$ B: P( hset stopped? false]
5 T/ W' b  x+ q& N" v/ b/ O[set stopped? true] + k% b. D- I% K% G3 p  g
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
6 n3 S( |0 k" p' _1 Jif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
7 x/ B6 v# d- ^; m  K9 O则可以顺利的终止go程序
# V; K9 ?5 J- }# _) r2 E但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-13 05:26 , Processed in 0.019051 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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