设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6227|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
! T% Q9 o% _4 ato go; h) v# @: M$ {
if not any? turtles with [not stopped? ] [ stop ]  
( u3 E0 _# k1 `* Hask turtles with [remainder who 5 = 0] [' m0 D+ K: }+ c) n( P$ l
set close-mates  (turtles with [self != myself])with[0 q3 ~2 Q; V7 }0 p5 n  Z( T
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
+ S7 }* H3 q' d; z8 `2 nand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 3 d  B6 T/ A% C9 I: o9 v4 K
and remainder who 5 = 0
( @1 x1 \! E+ ^  P# ?, D]                  
4 F9 W& h; D4 i7 `, {: _9 wifelse any? close-mates
, J. j* h  C3 D8 p3 H[                                                               
5 @9 N( v0 N6 U0 zset closest-one min-one-of (close-mates with[self != myself] )[distance myself]/ O2 V/ G* q/ l
face closest-one. {5 L; F- M6 m
rt 180
. G8 z( i; w- ?) s& K: s% j$ X* Afd random-float step-size
" B- J( v- b* Z" _& lavoid-walls0 `* N! c- f# I( E) n
set stopped? false]5 m0 Z: n: q5 t" S  n& U
[set stopped? true] 4 |( U* L2 ?' D3 L, }4 M; Q9 W8 H
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成0 z+ @9 P8 z" J& t' ~
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
6 l0 U  K3 Q" [7 k2 t2 t) R则可以顺利的终止go程序8 A- V" h8 N* U( {& M
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-3 15:51 , Processed in 2.706127 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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