设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7315|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。3 n4 ^4 A) K) Z' j

+ F8 H) N0 u* {6 y但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。: V# ~) ^! m. k$ a' H7 ]3 f
  ~8 X& J4 k! _2 C! w3 n
turtles-own [a b c d k f g h/ r. Y* D; I5 z9 Z
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 7 M5 T9 e6 `; D7 [, @) L6 @
]. x( v- D8 [0 k: G! v  v0 q" T
to new
2 M; W* @4 ^$ q  ca
) t3 S0 T) E: U  crt 5 * num_of_building
! |" X5 t3 f; b/ Z! `  `  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
5 s( U& }. F& Z8 Y' }: ?+ Z, M7 b: e! ?  scatter     ;;keep center-turtle random positions 0 z1 C- `6 Z  p& ^+ f, g1 k0 G, X
  unit_plan   ;;make up the building plan
& M7 c+ m0 N: b, f) J0 @2 c/ fend
& T' L, m* i; S' A7 L% {+ Y6 Jto scatter
( L/ W$ C1 Y% u' x$ Dask turtles with [remainder who 5 = 0]& i8 D9 ?* [+ d
[
  {) H' ~0 ]  K$ \, Vset xcor xcor - 6 + random-float 15
  ?& U5 o. X. i9 ], mset ycor ycor - 6 + random-float 157 c$ L; u4 ~. t$ _
]& _1 D* v  i- a/ W+ h7 A
end0 I- F/ K/ }& A% d
to unit_plan . d3 t; h  R# B" |
ask turtles [2 d+ |! s; d; K5 X! n
if (remainder who 5 = 1) [set a who
" ^9 V+ E2 U& i; U( Q$ ]& c                          set x ( 0 - Wid / 2 )
( \2 y3 Z; k, A! ^! P                          set y  Dep / 2 ]9 J7 _/ \- u) \4 k& j* q' L
           set b  int (a / 5) * 5, u" B% Q# M9 j  C
    setxy ( xcor-of turtle b + x )
3 h" E) m( V# y' g8 f" p          ( ycor-of turtle b + y )
$ q7 U  `9 ?4 n5 ^+ a3 ]6 z( Iif (remainder who 5 = 2) [set c who& a3 ~2 L" ?, G$ `1 [7 O
                          set x ( 0 - Wid / 2 )
9 W. k- s, u4 o1 @# X                          set y (0 - Dep / 2 )  ]
9 x: R  q. N7 u) z9 N! t3 E                          set d int (c / 5) * 56 z3 B2 G& L0 }
   setxy   ( xcor-of turtle d + x )
$ d: I- r- V8 ~, k# q           (ycor-of turtle d + y ) $ `) G$ v. C3 g, K) x; k+ K* q/ @
          ' h% Q3 z/ U' Q7 X
            - }" ^: Z1 [& L8 _* C
if (remainder who 5 = 3) [set k who( K3 U% g: U8 j! L
                          set x( Wid / 2)  5 S( k+ R% a  ~! Z
                          set y (0 - Dep / 2 ) ]
. o5 O" ~4 h- j0 @. x5 I                          set f int (k / 5) * 5+ ~4 \5 q8 J$ b: A9 [' g" D
  setxy   ( xcor-of turtle f + x )6 [% q. ]- _" B
           (ycor-of turtle f + y ) 7 z3 x) Q" q2 s' _
           
8 m2 O$ |% G$ N2 E' v, y# P+ ^           6 D+ |8 h8 h: F. k& G" c
if (remainder who 5 = 4) [set g who4 d6 m. z3 p8 J  |  ?6 a
                          set x Wid / 2
( b- Q. p% U6 m( ?                          set y  Dep / 2 ]
- h; J% R1 w  c                          set h  int (g / 5) * 5
' }! g3 m4 h* W4 u) h  setxy   ( xcor-of turtle h + x )
+ @* v$ F' I" @# U           (ycor-of turtle h + y ) ! L8 M. F2 x# |4 _3 |
                          
4 t" {4 ^0 ~! g                          
! {# W" m' |  _+ [2 z                          ]7 f3 `$ w8 G7 q- M) k
end9 p) u$ i% r5 S. s/ D- H) b' ]
! |$ Q+ I6 Y% V& x& J8 M( L" b
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
) y9 M6 F; U# X7 H应该是1 ^9 W  C3 C7 ]) P8 @
ask turtles [
: ^$ ~+ M/ X, F$ ?) g7 Aif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) ; _1 E+ b+ Q7 k' [& E
                          set y  Dep / 2 ' ?' y$ @  E% u( P! n
           set b  int (who / 5) * 55 i  c8 g9 A) r5 h  K3 X
    setxy ( xcor-of turtle b + x )
/ {# Y" t$ [. ?. {5 B- y          ( ycor-of turtle b + y )]]
4 W* n* b7 J$ G6 }5 Q4 pend) J4 R  ^! y/ M+ m( \
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-28 16:14 , Processed in 0.019807 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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