设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5994|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
% C1 h4 j  y/ T: h0 c: Xto go
9 H% K% a& d  K; T1 U$ {if not any? turtles with [not stopped? ] [ stop ]  . ?% L9 w, }# h; R/ s
ask turtles with [remainder who 5 = 0] [
& |0 S; D" i9 O9 Pset close-mates  (turtles with [self != myself])with[
* O+ R0 ~# d+ s* P* {/ P(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 9 x: y6 I$ W# s" o1 S
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) " g. o& Z8 H. Y8 R2 j
and remainder who 5 = 0
+ T/ y' U/ X7 l1 ?2 z1 j7 x4 `]                   3 w3 e$ s5 z' ~
ifelse any? close-mates
6 Z2 ?# {3 ~# r0 T" r+ N# c/ Z. }[                                                                6 u2 I" q- f- Y) L4 c- [# I7 N
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
! c* u  I3 C7 l4 v+ sface closest-one- d+ Y  N0 F% J/ r5 J+ Q
rt 180% ]1 M  q8 G) L' K& F" f& O2 r
fd random-float step-size
0 g' Q. K0 F9 R8 }- Kavoid-walls
! j! o! i6 o/ L, d$ K0 aset stopped? false]* c. }  p/ g4 R: I/ M# A3 d1 s3 p
[set stopped? true] 3 T8 B& j) @7 r4 E% h
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成& i( ^! M: o4 o$ x* ^3 Y- Z# b4 a
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
" d1 k# p; |) y6 P则可以顺利的终止go程序
9 ]" ]: u% P% A) R但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-5 14:07 , Processed in 0.020399 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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