设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5667|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false/ B) y; [$ n9 b
to go
, l3 g) C# r9 W; v% W& I1 a5 jif not any? turtles with [not stopped? ] [ stop ]  / K5 d. W9 v. {  O4 K9 e, M
ask turtles with [remainder who 5 = 0] [
* P/ S  O" k1 X$ ^* Tset close-mates  (turtles with [self != myself])with[  ?1 L& c' z# `! F. p7 t5 u- M
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
) z, L, Y+ O2 ^$ U) i- U9 m+ \and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
- G! c' @8 W0 n4 k$ I2 F# K/ e8 H6 band remainder who 5 = 0   \; P1 G( F: U3 q* S! h" p- z
]                   # E% i7 |6 W8 T8 R5 [% x% c
ifelse any? close-mates
% q) s% p3 ^2 o/ [[                                                               
5 `$ F4 [, Q' e" W6 s7 s# Fset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
) Z+ w5 ^; Q  I0 O+ xface closest-one- m: Q: U2 W* Z( G* c4 u3 Q. @: v
rt 180
( u$ ]9 ]- n, J6 ^0 Ifd random-float step-size
5 z( \. i: Y8 N: X  G4 T' Savoid-walls+ v. z8 \) i, U0 I. @
set stopped? false]3 V4 b: _- g* q  V, j
[set stopped? true]
7 E. j! l6 u5 ?, T8 N: f" f]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
  j' R1 j7 w7 Nif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]# E  Z* [, i, N( E$ w8 N9 n
则可以顺利的终止go程序
( t* [) c/ F; V) k但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-28 17:24 , Processed in 0.013375 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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