设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5576|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false: S' k; j+ W6 S9 i1 I& _
to go4 s3 ]* l: L6 W( d0 p7 M, A
if not any? turtles with [not stopped? ] [ stop ]  
- ]+ \4 S' A" U% [( g3 @' Bask turtles with [remainder who 5 = 0] [
7 O! \2 f" s5 ^  o9 m+ q- gset close-mates  (turtles with [self != myself])with[0 ]' z' r* Y7 D6 a! r
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )   _2 Y0 Z% E" B' Y* ~
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
; s# P# q& ]9 g: ?$ Qand remainder who 5 = 0
$ ]7 v! b! B  z# l" U* W9 g]                  
& q2 P3 m6 M, S# V4 c+ @ifelse any? close-mates * @1 Q8 ]/ B. A0 K& n* p
[                                                               
" c* @2 v8 c: L5 F' kset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
) Z/ y- _) F2 a% r6 Z3 Dface closest-one) `6 O  N% c2 s4 I% N8 h
rt 180
+ d3 @. X) m, c7 `9 C. ~& B9 ifd random-float step-size: S" a* I0 Y! J1 g$ d+ e! G
avoid-walls
4 O1 F8 G% N; y6 pset stopped? false]
/ V5 c; s% h4 s) V4 k  x: v$ W[set stopped? true] : d2 Y/ p9 O  X
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
: B% [) [1 O+ ^4 e1 C* i' p5 b  pif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
% Q- n2 ]8 ~4 `- H) l则可以顺利的终止go程序
+ _8 y. c" |: ~& G但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-6 19:23 , Processed in 0.011680 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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