设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5573|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
% H! e, M5 n/ W; p4 i7 I  Wto go6 _& m* D8 _  X" v
if not any? turtles with [not stopped? ] [ stop ]  
6 Y2 `6 O7 Z3 y/ O9 dask turtles with [remainder who 5 = 0] [$ C# @- e" N+ x$ E
set close-mates  (turtles with [self != myself])with[
) b9 G* Q/ s- A! |" n1 m/ u(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
0 G6 o" p+ ~$ \and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
+ d+ E3 v0 X- G1 o& N% Qand remainder who 5 = 0
! h- N7 J  F- {3 G5 o]                  
/ v# u1 i8 Z: x" r* Q2 sifelse any? close-mates ( @) }) r9 S4 `- r) p
[                                                                , }" N! }' q1 U9 w* D
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]$ l' h3 h' H0 y2 m9 R# _3 e' p
face closest-one
' ]4 y0 ]# ?7 Q' g5 w! brt 180
9 g1 V3 E/ g3 A+ ~fd random-float step-size. S! c* a" w  N  e6 d4 _
avoid-walls5 H, |0 O: I; r: k
set stopped? false]( |5 ?4 \1 I2 z1 R3 E
[set stopped? true] ! Y/ o* F# t3 p& t
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
& I2 ?" {7 `7 Z3 `if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]1 {. n9 A0 x/ E% p" r3 X5 M' L2 @: I3 n3 ]
则可以顺利的终止go程序! V! a- G3 s# d& k
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-5 15:12 , Processed in 0.014505 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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