设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6584|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
5 `3 j& y! o: A7 O0 Eto go
1 f0 {" O8 n* l# {+ p5 v2 M/ rif not any? turtles with [not stopped? ] [ stop ]  ( m' r9 r5 R! }1 N0 J
ask turtles with [remainder who 5 = 0] [
3 r& P4 V% M+ h# fset close-mates  (turtles with [self != myself])with[9 a6 e  z7 i8 k) `1 C& z
(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) * f7 y; z% T$ I4 c/ Z; N2 U0 _# R
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
+ R- K1 y9 E: Hand remainder who 5 = 0 8 c+ Z- F# X6 t0 n/ [" ?
]                  
3 W/ P5 a7 q* H6 g0 w# `* Sifelse any? close-mates ; N$ z& Z' V3 b1 ?9 n0 B
[                                                               
  V/ x7 v# L6 K' S1 Hset closest-one min-one-of (close-mates with[self != myself] )[distance myself]- L" G+ g& ?1 V1 ^" v
face closest-one; J. q* i9 C& g! F  l) \
rt 180) o3 f# ]& P( O
fd random-float step-size
7 P) ~6 z: R8 C! Z6 T3 Eavoid-walls. ^1 C, k3 [' y
set stopped? false]1 ~8 _3 N  P$ i# D
[set stopped? true] 7 ]5 A$ j. t; A- T, _8 _" F( G9 C
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
& f, n3 j' w% C9 Hif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
* P9 x, r/ y* {8 Q6 _- P则可以顺利的终止go程序
- {, T9 x4 B/ ~但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-25 20:46 , Processed in 0.017308 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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