设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6655|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
. i& D) Z. c* h0 U; \2 r8 {( D  Q/ i. I, Z) ^) d
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。# G& H- N$ I, Y

  a! A9 j* ]3 d; z8 Cturtles-own [a b c d k f g h
6 K- X0 k, C* D& ]! l0 I$ L  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 5 z( M- O# G! ~- C2 V7 |# S
]$ x8 M, ?+ o, b/ x/ r
to new: v& q2 v4 h$ u; ?
  ca* R7 O9 o3 Y+ f7 B
  crt 5 * num_of_building
$ u3 B: s6 ^+ v; d% V0 u$ g9 Q  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]- x, N4 m* d/ {5 g& ?" V# S
  scatter     ;;keep center-turtle random positions " {1 R7 {, C8 V! Z* x) i8 G
  unit_plan   ;;make up the building plan9 p: z' h$ `) \+ z- Q( X
end
  ^8 ], r3 O* L5 G+ F+ [0 wto scatter
" N$ A- |3 ?& }7 u5 xask turtles with [remainder who 5 = 0]6 h7 x% _0 B; g: D- W, q) w1 i
[
& n6 l) S# b  D& G, q5 bset xcor xcor - 6 + random-float 15
( {& @7 E0 W7 T. jset ycor ycor - 6 + random-float 15
, ]) P% E6 r: v# w0 ]]) Z4 f/ [; U5 `3 K' E5 A9 ?, ?
end3 d# T) k, f( M. v8 [2 G4 `  ]
to unit_plan
) n; w, V- D# Z, iask turtles [, r  |- u( R4 \1 [7 U7 n
if (remainder who 5 = 1) [set a who , y$ r+ c2 w/ ^
                          set x ( 0 - Wid / 2 ) * P6 q- Y# F# D" Z  h# Y
                          set y  Dep / 2 ]4 q1 N9 f: c; ~% Z/ ^
           set b  int (a / 5) * 53 H# o/ K( c' _7 t; s4 P2 h9 D
    setxy ( xcor-of turtle b + x )# J  _% }, D6 h
          ( ycor-of turtle b + y ): E0 `; B$ C% g2 Q
if (remainder who 5 = 2) [set c who
4 W. _  |, ]/ }                          set x ( 0 - Wid / 2 ) / w0 I9 q7 w  i$ N/ E
                          set y (0 - Dep / 2 )  ]3 G* ]. p: c9 g& E% x) M
                          set d int (c / 5) * 5* K/ d1 O! b% X! O6 B
   setxy   ( xcor-of turtle d + x ): R- p: `5 M, i0 U! ?1 D
           (ycor-of turtle d + y )
) I3 v( a  K, I         
" `. ]0 k6 m% B4 Y            2 z  \) x& w# g4 G7 a; ?, N. G
if (remainder who 5 = 3) [set k who- S% i" [; T6 ~) o: j
                          set x( Wid / 2)  
; `2 K# b+ f6 n0 ?$ u4 w! G                          set y (0 - Dep / 2 ) ]
7 X1 S2 O  i0 R9 S                          set f int (k / 5) * 5
! H7 K+ N' \6 U" Z2 M  setxy   ( xcor-of turtle f + x ). D/ h& v( g" C# G" R: G
           (ycor-of turtle f + y )
& q; ~. t) Z: C5 ~, B           
! s, w+ E$ h0 ]           $ q7 V! x; O; L) W4 H
if (remainder who 5 = 4) [set g who
5 B. v! f: C9 c5 t$ ^- [                          set x Wid / 2 % }) D) u- f: M  X# ~
                          set y  Dep / 2 ]
: S! d" W9 Y: S& A. [; b! C                          set h  int (g / 5) * 5
& o3 T; B. W) U7 X& Z; P* P  setxy   ( xcor-of turtle h + x )
3 w% ^" Z% d4 ?           (ycor-of turtle h + y )
/ Y' f; Q$ S9 S& W$ g3 C( g                          
0 q8 v: a) `9 |( ]+ E                          ( L' c2 w- Z8 }
                          ]  M7 B' G, ^  Z( x9 {: e5 B  N
end
9 x* ^% n- }, `
  [' j& u: z4 _9 N/ W' {% V[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
4 V4 E9 i9 S( ?- L# i: i$ G; B应该是- F$ w; V3 M" y) n+ ~- X, @
ask turtles [
2 w% w9 c% g# Oif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) ! k. W0 T' w! V/ t) `! s! |
                          set y  Dep / 2 + w2 R3 g7 u8 X/ s1 t5 u, N- s
           set b  int (who / 5) * 59 e- L. W3 c% `& K: C
    setxy ( xcor-of turtle b + x )- V6 ^2 X2 o+ r2 T7 B9 Y
          ( ycor-of turtle b + y )]]
8 S; [( S6 W, c4 Xend( y6 E  E9 a. {4 x
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-8 10:35 , Processed in 0.018955 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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