设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5450|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false$ y4 x* _( B4 q! Z8 w
to go+ v6 o5 K" `' R3 A, |8 H  H
if not any? turtles with [not stopped? ] [ stop ]  
7 ^6 }% C5 U1 R( X, w* rask turtles with [remainder who 5 = 0] [
- O; s: \/ v' U* Hset close-mates  (turtles with [self != myself])with[
8 j' A3 A7 ?, O" j. ?6 J& N) i( t(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
9 D# c3 R7 w3 k% Jand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
. u0 S% C) S+ S) R# V) A! aand remainder who 5 = 0 3 g6 U  n) Q# o
]                   $ D/ M2 I7 U7 ~% |( d4 A; A
ifelse any? close-mates
9 v- M3 N/ s) ]$ [. ^, s; n[                                                                5 V/ F+ L' Z0 D+ `
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]4 l8 s" z( v- `- q  O
face closest-one1 Z0 I0 p/ {0 S. C
rt 180
  ~$ \5 ~' q5 i$ Cfd random-float step-size
! u# V( G; s/ uavoid-walls
$ g" x* |5 E$ H2 B& gset stopped? false]5 w; L* m4 K% Y6 B5 D
[set stopped? true] 5 j9 E4 E) R6 Z$ J' j
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
6 A7 p: q' c$ a1 z4 wif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]- d$ w# K" w5 Y( g. M% T8 g
则可以顺利的终止go程序
, A( N/ r5 z+ z5 e  p但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-24 20:48 , Processed in 0.014203 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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