设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7959|回复: 1

[交流] 看看这段代码的问题

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
2 J" {$ w3 P, I. P9 v2 W
( N5 ^- H; n8 o但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。/ P4 w4 b( @7 Y4 X3 Q4 Q' q

! T- o, X0 L5 ^6 R, Rturtles-own [a b c d k f g h
, ]# [. O# l* n5 f  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
$ |! P6 J! f  L6 l! h# @% o]" v. r# I  W; @" j, o
to new, F% P& o9 c& J8 y
  ca. _* B& @: k6 r* Y1 M
  crt 5 * num_of_building
2 J3 z: V+ N# \8 ]7 D  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]: Y: |$ q! I5 j! _5 \& e+ s8 y
  scatter     ;;keep center-turtle random positions 6 D1 Q! }6 F# K4 O
  unit_plan   ;;make up the building plan' v% h2 ^$ ?6 c
end
3 B# ]1 Z# E, \2 d0 }+ t% hto scatter
8 y+ n6 p3 L) \+ G0 W5 [$ Zask turtles with [remainder who 5 = 0]
  Z* S, C) {6 u[! w6 J; S$ ?$ e& \
set xcor xcor - 6 + random-float 154 G8 A" h. o( k7 i4 O" Z( D" O% V
set ycor ycor - 6 + random-float 15* f/ G: U# e) }+ o
]/ m1 n, p1 Z( G8 s0 ~( }
end
8 J' G  x, g2 m! o: Qto unit_plan 8 u9 y: ^1 r& Z- D
ask turtles [
+ L& g& E  @! y8 A: cif (remainder who 5 = 1) [set a who . }. B6 x* a6 N; U. W
                          set x ( 0 - Wid / 2 ) - E0 C( r/ ]4 _$ U
                          set y  Dep / 2 ], {( P6 k7 o, x; h- Q
           set b  int (a / 5) * 5, }& s" |, S1 n4 }( j0 i# X
    setxy ( xcor-of turtle b + x )* L: w  S7 a' v0 l5 F- v
          ( ycor-of turtle b + y )" k) h+ n( r5 n$ _7 L
if (remainder who 5 = 2) [set c who' p3 [% C: v$ p! B
                          set x ( 0 - Wid / 2 ) % H3 b. d% q# l+ K# ^& |
                          set y (0 - Dep / 2 )  ]
' S" i3 q% }; V4 O, @- i7 `1 t                          set d int (c / 5) * 5' a9 Q- z. ]1 U. F) P$ V9 F
   setxy   ( xcor-of turtle d + x )
: J& P% L& Y4 i) z5 J4 ~# N; R           (ycor-of turtle d + y )   I0 Q, w; z7 ?+ Y& o; }$ ?
         
6 O9 _( [, g% `2 H2 |/ d7 o            8 S7 J' O5 L/ z$ u3 G
if (remainder who 5 = 3) [set k who
7 W+ y/ x8 T* a8 i3 N* N                          set x( Wid / 2)  3 O+ ]# S( \- h) C% a; ^
                          set y (0 - Dep / 2 ) ]
  ^; ?5 y3 p) P8 e5 z# F                          set f int (k / 5) * 5
* y. l( x6 b' x/ V6 |& t3 k8 p2 r  setxy   ( xcor-of turtle f + x )
. D4 `- l. \! `! W" V) O           (ycor-of turtle f + y )
8 j4 P0 v: a# `1 p4 }$ w5 s             D: ~# G1 n! ?0 H+ ^0 m
           2 v2 ^+ f! W7 V' Q* S7 f# z
if (remainder who 5 = 4) [set g who
* n% L. ], J! r* h( {3 ?( n                          set x Wid / 2 8 r, c, U% R" ?& |5 a
                          set y  Dep / 2 ]$ C7 w  ?( Q3 \  y& Z. \' R
                          set h  int (g / 5) * 5
$ z. R& u. m" R" g  setxy   ( xcor-of turtle h + x ): ]1 f& }- U; X5 E
           (ycor-of turtle h + y )
/ t: N% v. M* [: l( `0 e                          
; G6 ]7 y3 f* W% X                            n1 G' e9 E5 g& X! x
                          ]4 ^" U3 h$ d2 t( k/ J6 V
end
7 }( I! J5 Q* m! U9 h3 {
0 W  ?: {, _; r# y% {[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
+ L$ M& w. F# n% H, U8 v应该是
' i) g, w; d2 [! rask turtles [+ S2 @1 z" x5 J. R
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 9 @- ?0 ?0 v; }) D% o; [' @- h: `
                          set y  Dep / 2 * ~- T' Y  a7 k; p$ m" ^
           set b  int (who / 5) * 5
) v. L1 p( j* y    setxy ( xcor-of turtle b + x )% c" g1 c% y" Q9 h! `2 _/ Z* I7 H4 I
          ( ycor-of turtle b + y )]]1 b0 D7 U, Y- P& g( @( Z2 `# Y
end% w3 b( E7 A- X1 |9 e$ A7 O
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-22 05:29 , Processed in 0.020405 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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