设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6624|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false' Q( l. ]4 i7 S) y$ D9 Y
to go
' e4 A0 r- j. V& \" qif not any? turtles with [not stopped? ] [ stop ]  $ @9 v/ f9 V: `, s2 z0 v9 _
ask turtles with [remainder who 5 = 0] [, `" I! V% w$ S/ k$ y7 ~( p' j
set close-mates  (turtles with [self != myself])with[
# S' {& n+ {7 j' }(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) . {) i7 C/ [6 i3 h1 c; ^/ q# D
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
) q3 z2 D5 g4 G0 w6 g) u- y; K+ Band remainder who 5 = 0 ' |7 w: ^, D, T' p3 @9 J; f
]                  
3 B; p# c9 _  v5 I, pifelse any? close-mates
- d' r5 m& b1 E4 ]( u  n" ][                                                                . p( E! t2 k- Y: Z# B+ E: \# B
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]' X0 F& ?0 y) A
face closest-one
6 |- C; m% x/ \: grt 180
% Z) z. H8 \  e( x4 Kfd random-float step-size
5 [; W1 O# i$ h* f* a0 O: x" vavoid-walls; ~5 `4 }& h" T3 Z% _& T! Q
set stopped? false]
1 t6 T) u0 e# |9 E; t[set stopped? true]
4 V* m  T- Z& u]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成; `3 x% _/ I7 C" w; D) `) R4 G- Y
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]1 m' R1 @$ H! s
则可以顺利的终止go程序* T" o1 Z9 ~! O* F
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-2 01:22 , Processed in 0.022246 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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