设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4577|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
) ?; r6 n6 F8 [' v' I. fto go
. [* S4 t  s, M$ D5 F4 W' t/ b) cif not any? turtles with [not stopped? ] [ stop ]  . u; ?# f, V( g& o7 t' C
ask turtles with [remainder who 5 = 0] [
& a0 ]. g" `# s, t) Pset close-mates  (turtles with [self != myself])with[
% j! F  d* v* u: T& [8 K% n- G; q(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 1 `( |; y7 @+ u3 \" z' S
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
3 g" Y0 d4 F8 ?and remainder who 5 = 0
" \* r) `# p3 }! r- O+ n]                  
' ?0 i: Y. }7 ]/ M3 Q/ _7 Pifelse any? close-mates
* u+ m4 ~$ b" K! W+ H/ J/ I[                                                               
; w9 x7 }. d) e) zset closest-one min-one-of (close-mates with[self != myself] )[distance myself]+ r6 I2 L7 _& N7 O
face closest-one
; B9 m/ e# o5 N# A# Wrt 180
6 s3 @/ c& Z2 @2 K3 a1 M4 T" Dfd random-float step-size; R/ G) q* |$ N6 ]' o6 K+ C
avoid-walls8 I2 l( O4 I; f# k" z
set stopped? false]
$ L  ~/ t8 b& F4 ]' J[set stopped? true] - K9 H& h9 }7 h" t: J5 W# S  X
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
' c+ I7 i2 |8 j1 {6 }& B0 I+ Nif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]8 {6 e& r' v9 i( u' }4 t+ H
则可以顺利的终止go程序8 h: J' [% L' {/ D* z
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-26 14:52 , Processed in 0.015230 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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