设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6644|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
- O) ?- P' M; M* K6 Z8 l; Nto go2 ^# i' z; G' B
if not any? turtles with [not stopped? ] [ stop ]  $ z/ `- n. ?% y; k. e; |
ask turtles with [remainder who 5 = 0] [
( w2 u5 N+ v/ n! v8 t- e0 n) iset close-mates  (turtles with [self != myself])with[
1 o5 v" b: \0 x$ T8 n  l(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 3 s# _% p) i- a& M
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 6 c5 z/ j9 p- c
and remainder who 5 = 0 ) T4 b( |, i: `1 y
]                  
4 \) a9 I+ Y; c7 Zifelse any? close-mates
, T+ t4 z1 D, w# {* E4 t[                                                               
) W0 W/ q7 t1 L0 Rset closest-one min-one-of (close-mates with[self != myself] )[distance myself]: F. D/ [! T+ `: S! _2 e' c
face closest-one
( v# Z! L7 U* i' u- r8 Prt 180
+ I$ L' _! n5 N2 \0 O* dfd random-float step-size- k; C7 L, H0 F" O1 J
avoid-walls
4 u7 q. R# p2 B1 N3 ?% Sset stopped? false]
' W. E, P1 p, ?1 Z[set stopped? true]
2 @$ j; u$ {$ v0 N- [# y+ E]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成! N% [5 c2 K( M0 r
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
8 {8 N  N7 Y* ^5 p6 A( k# [7 p# @则可以顺利的终止go程序
4 \2 C! r$ B* C) `但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-5 03:53 , Processed in 0.015431 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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