设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6343|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
$ i$ V' a- x5 B7 Q) ito go
, M! z) A- c7 X2 \if not any? turtles with [not stopped? ] [ stop ]  
! p+ @- F1 ~1 A4 p2 ~& A. O, fask turtles with [remainder who 5 = 0] [9 q4 |4 y8 |. X, o& B
set close-mates  (turtles with [self != myself])with[: ^( r& d* g# _2 w
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 1 m: j/ h# e- q: r  H8 X# ]
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
( f6 p# g8 w6 v+ {- @9 gand remainder who 5 = 0 + u  O6 t4 z4 C; G* o9 Z
]                  
# |0 Z0 @$ H/ kifelse any? close-mates
; o- _6 P" O% o! c$ W* `1 ?7 z' ]7 n[                                                                ! {! U" v& x- e. q
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]% n% @6 ^: ~7 s! \
face closest-one4 q1 ~# s0 X# V
rt 180+ @% P4 |: i0 R
fd random-float step-size5 a0 }. \1 _6 B! Q  a1 I# \
avoid-walls
! `0 b8 M$ [7 Y+ k1 t0 sset stopped? false]
2 M+ X) l" M; n' T* E[set stopped? true]
6 r) V" E& _7 p0 U# o* S]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成9 H7 r3 O% g) m3 ^% D4 F4 }; R
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]: e" l  |4 z- o& d; ~+ A. v
则可以顺利的终止go程序1 L6 K& I+ ]5 J& u$ W
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 07:51 , Processed in 0.012870 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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