设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5423|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false/ f8 Q; ]. ^9 s0 b+ ^6 L" o
to go1 a9 r# H' F6 v/ ]$ j/ s0 q1 }
if not any? turtles with [not stopped? ] [ stop ]  
$ @% U- w5 F2 `$ q7 Dask turtles with [remainder who 5 = 0] [7 O8 o: }+ {: F- W) d
set close-mates  (turtles with [self != myself])with[
  g2 C' Z9 P) j9 }5 O(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
4 ]- e* {8 |1 V+ }: Z5 E% eand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) / W  z3 h% r! v5 u. C- x6 \1 |
and remainder who 5 = 0
  }9 T, Q2 K2 g  C0 y+ R]                   + t; d* S, q" z. m. c/ d
ifelse any? close-mates ! L0 m1 @/ O+ M) i. s7 }4 k0 G
[                                                               
4 W0 M& J# H6 L/ \( B/ q) ]set closest-one min-one-of (close-mates with[self != myself] )[distance myself]" u8 C- K8 `% b+ `6 p
face closest-one. J& d3 `' {8 ^
rt 180
! L, b. B) L' t( }/ G$ S, Nfd random-float step-size9 s- W& S! u( O+ E2 O4 l- ]& n
avoid-walls
) q/ \1 w: [+ O7 Dset stopped? false]
3 Q; K% I' j; N, p6 M9 H) _5 l8 H[set stopped? true]
* l. P/ O8 T. C! t3 V]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成- D0 ^7 {. J& {" s. |) ^  C
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]" r/ Q  {4 D+ M' \0 F1 A" e1 q
则可以顺利的终止go程序
$ K# @, D7 C, }4 t但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-17 13:11 , Processed in 0.017374 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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