设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8723|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。0 O7 K% l4 i( {* S

3 P- b& Y: p9 \, {但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。! S4 ?) C% E: n* f7 i5 L) l% j1 C
) |% V9 C, L) A9 C6 S9 H% o7 D" u
turtles-own [a b c d k f g h7 D' y( ]7 A4 ~2 k: \
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ! m& u2 C, B7 M* U! D" j
]! F% }9 \  J( N, X: r
to new
# _) R  h" w% I9 i5 n$ W1 K  ca
) G0 w2 l) Q* @) Q* J  crt 5 * num_of_building
! Y# {' ~$ A6 d$ A$ t7 l  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]( I4 |& k. _( u" ^/ r
  scatter     ;;keep center-turtle random positions
. y/ H& d# r9 P2 ]2 Q, N  unit_plan   ;;make up the building plan
; C( f0 D" w( x; i3 w* [) m7 `, [end
: N1 s" V$ ^# z* w. dto scatter6 W# y  x% p1 w2 Z
ask turtles with [remainder who 5 = 0]% a7 t# n7 r* x  v7 p
[, A) W6 }5 Z1 v7 `& F9 v2 y/ |1 M+ e
set xcor xcor - 6 + random-float 15
8 }% i2 a6 \( Z% p' Y1 w2 S4 Zset ycor ycor - 6 + random-float 15
! [) S& J" I9 {+ p' x2 D0 T]  F  [: \! p$ S
end
  x! ^# e4 E0 N- C7 U& w- N; hto unit_plan
: t; w. c# Y* Fask turtles [
& f. Q2 P5 v' j7 v; l+ l# h& K4 c; hif (remainder who 5 = 1) [set a who ( m: w8 J5 c8 Y
                          set x ( 0 - Wid / 2 ) . T8 @) k, F0 J" ]7 u
                          set y  Dep / 2 ]
" ~8 b3 o: G. }( d0 c) ~5 i: a           set b  int (a / 5) * 5
9 F/ q, D) e+ e# L$ Z    setxy ( xcor-of turtle b + x )
0 ~% ^+ t: }' O          ( ycor-of turtle b + y )( O0 q% {+ Q4 s+ L- D3 r8 L$ t: U
if (remainder who 5 = 2) [set c who* Z6 Y$ ^" K4 L4 {
                          set x ( 0 - Wid / 2 )
8 C) l; C, `! N# x                          set y (0 - Dep / 2 )  ]
2 V7 Q0 A3 s" k                          set d int (c / 5) * 5
( Q* B6 F6 e) ^7 Y3 n! D   setxy   ( xcor-of turtle d + x )8 s2 M+ T. V: A. ]# y: C3 }
           (ycor-of turtle d + y ) + B4 t4 z4 A# _( \3 o: W+ J
          3 h, U4 c2 M- O) ^& N" u' H
            6 Q  i4 U$ G0 v+ ~# i
if (remainder who 5 = 3) [set k who
% i0 Z0 f: }: D# g; X                          set x( Wid / 2)  2 K( U2 n$ _" G& t7 q
                          set y (0 - Dep / 2 ) ]
6 c: S  L% ]8 e4 H" f                          set f int (k / 5) * 5
& s0 ~. C3 c! M+ g  setxy   ( xcor-of turtle f + x )
) u' C. O+ B2 _0 R9 w           (ycor-of turtle f + y ) ) @; F" g; Q5 Q, W  ^: @' b" W* M
           $ y9 x0 c# @& L9 o. N( u$ T9 M8 E1 h
           - d' z. d1 ]# Q5 y" `
if (remainder who 5 = 4) [set g who
/ `. C1 }2 g0 U) k- _5 ^/ J' g8 X! D                          set x Wid / 2 $ a1 K* P' y8 N5 i2 \
                          set y  Dep / 2 ]. ], ]2 n& q' o1 @: A
                          set h  int (g / 5) * 5
. w/ M- s1 Q% g# l  A  setxy   ( xcor-of turtle h + x )
0 Y0 W% @" w& J5 X$ B! Y           (ycor-of turtle h + y ) 1 A3 i8 s( H* w3 u3 |
                          
3 d8 t; K. e; q& ?) r# T" G$ B                          ) A9 c' ~% w- Q0 o# W% Q3 ]* R
                          ]) ?7 {" `. y9 i7 V) J1 P
end
# v5 k& E# s( ^' h- t  @' R* O4 [4 D" x. O
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
( |0 V" `1 o5 B8 S6 o7 c应该是
$ i# v( U1 Y% `' qask turtles [- V" \. T% Y& v0 q: w6 [; x
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
& Y7 [. {, z; d0 j' p! O, y% S                          set y  Dep / 2
, _: J: g2 C) j* s0 k; `           set b  int (who / 5) * 5
- D- V" n  Z' s& G: N    setxy ( xcor-of turtle b + x )& {7 F( U" i3 X! B# l3 \, v  x! e
          ( ycor-of turtle b + y )]]
- r* u2 C$ g3 J$ aend
" d5 e; ^! {* |! [6 f0 g, F/ A. O之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-29 04:59 , Processed in 0.016259 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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