设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6566|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
$ m1 a  `5 s) `* V$ K% g$ O2 |to go
( Q! Q6 E. C7 j0 iif not any? turtles with [not stopped? ] [ stop ]  
0 e7 I: m4 I. y% lask turtles with [remainder who 5 = 0] [
" K) T' K. g" X, w3 Uset close-mates  (turtles with [self != myself])with[
6 A2 M7 }" Y7 N+ u# @(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
2 e1 K& L6 g6 ~/ l9 hand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
+ P! K  V& a0 p! T) z# A2 Sand remainder who 5 = 0 : a7 U! L. o. r
]                  
9 V. [6 j4 N, R7 S. t8 J4 g& |5 _" jifelse any? close-mates ' x/ _/ M0 Y. w7 [. i4 j3 }
[                                                               
( s7 `) W; p% G# P+ Q" J8 C1 Iset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
8 b2 T+ O0 S( k/ Y+ Fface closest-one+ U; g! w) p  V% n$ h0 j! Q
rt 1809 M( W' m! ^! g
fd random-float step-size4 ?. p0 n; S9 b. e" {: S8 ^4 e! M
avoid-walls
- L8 G2 k% q8 i3 Nset stopped? false]8 b% r8 h( W7 t( j4 g
[set stopped? true] % X' l  R; m  M3 ]" E5 s* p8 M
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
6 h0 X+ E) N9 r9 B+ x* @1 w* E  [if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
5 o- r/ e" M+ j: q则可以顺利的终止go程序9 h+ C+ ^& ^' y5 v' o  Z6 r7 W
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-21 17:06 , Processed in 0.020421 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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