设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8444|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。4 j2 w; y* _# t3 d5 X" O
9 x4 w7 X! f) P: m* W& d
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。8 k2 W  S8 v$ N3 b- m- A
% Q0 x$ h1 j7 m. K" M4 N: O
turtles-own [a b c d k f g h+ M0 W" V% L% c2 G, p
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
/ K; W4 k* h8 y, F! t. R8 ^: J0 f]8 `% a' @8 t( ]* X+ e) T/ a! \
to new
4 [% k5 X* C: z+ ^* n  T; t4 X& n, X  ca
' ?. M/ u3 F; N1 X8 f/ B5 R( C  crt 5 * num_of_building! f2 e% _8 V# \$ w5 _
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
/ K* K' B, j$ a1 l9 s  scatter     ;;keep center-turtle random positions
+ f) R) }* q' T1 a  unit_plan   ;;make up the building plan  g" k( c' T6 \% N# t' d
end
/ G+ W& m7 ]2 q# q1 Fto scatter
3 y. ~' V7 }3 k7 R) pask turtles with [remainder who 5 = 0]
6 ?  |3 \: a- V[, p9 ]9 K6 X; G. N0 p
set xcor xcor - 6 + random-float 15
+ {: r) O9 j! u* i0 C5 \! `" \set ycor ycor - 6 + random-float 15* N" S+ y& w, q. L. |' ]3 q+ |  f
]
4 _- [( h$ v( N* H+ Y; j8 t7 Q$ Q/ [end2 }: T9 B9 H, X) L
to unit_plan 7 ~% {4 U2 T" l& O0 b+ d7 d  y
ask turtles [# n& R6 G* Z5 h: U/ H$ a+ M
if (remainder who 5 = 1) [set a who
. X$ V0 t8 `  N0 x/ h- r# a0 g5 |                          set x ( 0 - Wid / 2 ) 8 {4 e6 f% q. P! D
                          set y  Dep / 2 ]1 s- p! w7 Y" {' c1 R5 X% Z
           set b  int (a / 5) * 52 U! I/ a9 c) D3 l1 }
    setxy ( xcor-of turtle b + x )! T/ {5 k2 y# K$ d
          ( ycor-of turtle b + y )
" G( l. |  a0 B4 l: }, `4 @if (remainder who 5 = 2) [set c who
7 L# z4 Q# E% w                          set x ( 0 - Wid / 2 ) * _4 L3 c0 `+ t$ t% s
                          set y (0 - Dep / 2 )  ]
  \# y. s# B7 W+ X; ^                          set d int (c / 5) * 55 ]3 v$ @# p8 T, x
   setxy   ( xcor-of turtle d + x )
/ E" o* \0 d2 r' c           (ycor-of turtle d + y )
! L0 g5 h) a" ~  F. \' F         
& P% i# B* j1 Q. u            " ?: Q/ W3 @6 O5 ~- n# E" ~
if (remainder who 5 = 3) [set k who
: B1 l: e8 S6 R% Z/ D( r, F$ c                          set x( Wid / 2)  
+ y' ^- Y! v- B                          set y (0 - Dep / 2 ) ]& p( l* [7 n& S# T, G! J8 I
                          set f int (k / 5) * 58 ^4 @8 M9 H8 @1 L4 ]) e, Y
  setxy   ( xcor-of turtle f + x )" t( w! s  K9 _- t
           (ycor-of turtle f + y ) " ^( @" @% d/ t" z
             v0 Q- p- \/ R3 I* g0 `8 H/ s
           # F: b" x* b( l8 g" o! U
if (remainder who 5 = 4) [set g who3 H- j$ a! d, V
                          set x Wid / 2
6 p: R' m( R3 i2 o; [; k7 ?1 Y                          set y  Dep / 2 ]
) ]# Z" q% t( ]) ?                          set h  int (g / 5) * 50 i+ t) K* E: ?' c  Z( \
  setxy   ( xcor-of turtle h + x ); Z1 r3 k, W5 Y; B4 l! u$ H) ?1 H
           (ycor-of turtle h + y )
: k9 s" W5 d) ?: N: T                          
5 E; x: X! u7 ~( F, |                          
$ m2 m- \- X& M5 [8 o0 \3 \                          ]/ `4 H) b( A5 _3 M2 G% `
end
" z) |. S9 ~. y1 L1 r. {* V5 v" \
6 L; e7 _9 n% f' \1 H[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
' E2 |* M" g7 s! C; ?6 b8 Q# S应该是
* v. N6 u: |/ C& _ask turtles [% s( X4 ]4 j& _$ N+ T" v
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
! w7 g. Q/ Y& W9 ]8 E. P% v# v                          set y  Dep / 2
. A/ u1 q) o: p7 v, `           set b  int (who / 5) * 5
8 b( X9 y* ?& Y) {+ z+ S    setxy ( xcor-of turtle b + x )
: m0 x5 k, U: |! f          ( ycor-of turtle b + y )]]- w4 Z" K) Y5 P. q: f- B- k
end$ {5 O* Z' i) d1 \: x  N! I0 A+ F
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-26 22:16 , Processed in 0.012967 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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