设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6529|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false& i- G1 J7 z; h, I% w+ D; E
to go
" |. e7 u" F2 L7 l5 N7 Z- X  K# nif not any? turtles with [not stopped? ] [ stop ]  
2 V$ X! l6 K- P1 Rask turtles with [remainder who 5 = 0] [' x2 t1 k% f7 }" I3 d3 ]2 x4 l
set close-mates  (turtles with [self != myself])with[
4 [  i9 c5 _4 S" Z- y' `(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) 0 ]% D, r: J. V* d+ q8 H
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
( q7 L7 ~6 ^8 t2 b! n0 Yand remainder who 5 = 0
5 X3 W/ E8 b$ u- a6 g]                   1 n, u) m9 A3 K" w3 M9 `
ifelse any? close-mates
) A3 h, u0 C) \$ E2 R3 f& z2 {6 y[                                                                8 K/ f5 X2 @4 U6 y
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]% h- E1 i$ A( I% y0 x- o4 K* _
face closest-one- n) r3 K7 \; [: R8 o
rt 180* N* S5 m& @# b2 y
fd random-float step-size
  }3 s3 }. S2 q, ~+ N$ bavoid-walls: w' z2 s) A( J, l9 B8 ?
set stopped? false]! r2 P+ c, u1 z" x3 E1 {. [
[set stopped? true]
3 L" W  s4 R) n! o( \]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成7 ]- W% b  {2 h$ R. C' B
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]0 ?! [  x8 l' f  C# S6 q& i  h
则可以顺利的终止go程序
- b( h6 {) M! x( c/ I( U但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-11 01:54 , Processed in 0.014638 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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