设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5257|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
, X* i" P  s! L- d3 \3 C+ Ato go
4 W4 o6 z$ o) u' c2 s1 L$ uif not any? turtles with [not stopped? ] [ stop ]  2 C/ o  n6 c6 t* s
ask turtles with [remainder who 5 = 0] [
; R5 E3 E" }  Q! x$ m1 Zset close-mates  (turtles with [self != myself])with[/ f$ R4 w! V/ t4 }0 }/ B6 w' c* n
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
% S' J* h% F/ z; K( ~$ M) [9 uand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) $ l) M* A' T3 K) m! m5 H
and remainder who 5 = 0 ) j1 b+ d$ h6 [1 T1 X
]                   ) P5 C9 L  N) O
ifelse any? close-mates * J" d( |: ^$ n& {1 W, j4 n
[                                                                $ U! k7 {) n+ Q; J& V+ i
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
7 h9 \8 B! l( `+ F4 Cface closest-one$ x" n1 \, Z% K3 F1 P2 y
rt 180
! n5 K  W5 ^; I- f2 T' ^fd random-float step-size
3 H/ ^* J5 [/ L1 B; b, \( W4 Davoid-walls
2 V- X$ B+ j- Q: w3 yset stopped? false]: g7 k7 e+ z6 V+ [2 F7 @
[set stopped? true]
1 W  L1 ?. j8 B4 k]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
- o6 z$ P/ |1 I; i& ?$ q: r( Kif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]4 ~4 b' p7 d' k5 @% s
则可以顺利的终止go程序
6 Z8 k; s% n1 o3 m6 ^但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-10 00:02 , Processed in 0.018325 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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