设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7800|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
: @4 F" n" t& K/ J3 F5 Z# x  B
- @7 k* \/ U! f9 b但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
8 u: S- v7 @& r, {' d3 q  \6 q
% s% x5 N- _' V1 @* dturtles-own [a b c d k f g h
4 j- P+ Y5 t( m  s8 r3 q5 ~; D  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
9 o( g* U% x+ ]7 T3 i( ^, F, s9 ~]# C" |% F2 G; f9 C
to new- F: o# q" a1 \% X; D+ z
  ca, h8 }1 n% g3 L5 y
  crt 5 * num_of_building1 w0 o4 }4 b0 N& P: N9 b& u1 S
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
& f: g$ l) V" L" [# X5 o8 O  scatter     ;;keep center-turtle random positions 8 w8 n) J& D6 `  t' Q7 n4 W
  unit_plan   ;;make up the building plan
" s$ V9 j1 _1 h# ~6 Vend# [" m! X# \/ G# c7 R
to scatter: l/ |$ J9 C8 e7 |& d
ask turtles with [remainder who 5 = 0]
; |( \0 ]  g( Q) a, }+ }$ h[
: t0 y& Y4 l: \! X( nset xcor xcor - 6 + random-float 15; o6 `" T) K( ]# B3 P
set ycor ycor - 6 + random-float 15
/ |# w. A& L) B7 i$ q: `( Z4 W* N]
$ C$ k! N  p! ~& }# E# t) fend
9 Q% y& @' T, Gto unit_plan " f! v+ k& n4 ^; N4 a# I* J
ask turtles [0 k8 \7 z3 r3 j+ V
if (remainder who 5 = 1) [set a who
# [5 S2 M) K. a* T0 U4 [- ]                          set x ( 0 - Wid / 2 )
" R' q+ G, `+ o4 j                          set y  Dep / 2 ]: Z3 ~/ w' P" q" G
           set b  int (a / 5) * 5
9 S8 C- Y; m5 J8 X* I8 _( a2 Z% @    setxy ( xcor-of turtle b + x )
9 d. {& S$ u- C7 j* ]          ( ycor-of turtle b + y )
) p( Q; v( k4 M3 P2 H6 kif (remainder who 5 = 2) [set c who' K/ ^7 G2 X+ y4 u: {8 _8 Z
                          set x ( 0 - Wid / 2 )
9 ?, D5 y& J% [% a3 e- b                          set y (0 - Dep / 2 )  ]6 q3 J# L3 }8 ^, ]/ r& q
                          set d int (c / 5) * 5
/ M* y! p- ~5 X   setxy   ( xcor-of turtle d + x )2 q" x' L7 ?+ n' K
           (ycor-of turtle d + y ) 6 g$ x8 k) f) l/ c( m1 ^; z
          ( o' b7 Q- p& P" _+ @
            * m! O! E5 q$ Z
if (remainder who 5 = 3) [set k who: [% \& D2 w# L( n5 u7 f' U& ]
                          set x( Wid / 2)  1 q+ z& ~2 G, g' B. I! h8 V6 {
                          set y (0 - Dep / 2 ) ]
7 B0 p$ t4 i9 y; z1 R. P+ _                          set f int (k / 5) * 5
; n* B- i' j3 i. `( r$ Y  setxy   ( xcor-of turtle f + x )
" j4 Z2 q# ~+ T           (ycor-of turtle f + y ) " l- X6 G4 u6 t1 C5 j7 X" p
           
1 _, w2 f$ ]! [4 P           ! Z/ q: e$ A! y. m' n+ G0 @
if (remainder who 5 = 4) [set g who' E  o3 i# o% {+ l
                          set x Wid / 2 : C1 E- d( f1 M4 b& q$ k. u
                          set y  Dep / 2 ]" Z) s+ y6 `3 C
                          set h  int (g / 5) * 5
# P. m0 M, t5 \- f8 g  setxy   ( xcor-of turtle h + x )
$ ^4 l. R7 A" {           (ycor-of turtle h + y )
7 q* A( i- \3 O) u( }5 u                          $ W0 L+ Y2 R9 y! p' m" u
                          * }! M# }- \' ]2 }6 d
                          ]
9 h$ K. Q' V& {. xend' Q- n. D! d7 g* U  J' e

: E" C# O, L6 ?+ i: O0 Q/ x[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
" i3 N/ |7 }5 V- W  \! F. U应该是3 m/ C0 {$ Z  o, A1 q! w3 }
ask turtles [, R2 {& A- z8 `+ n7 v
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
. Q" |3 l) ]& q2 \2 V) ?# ^- P) X1 S                          set y  Dep / 2 / `7 ~+ a) h9 t% m/ a- F
           set b  int (who / 5) * 5
8 k. \4 `' Q* v4 x  B$ m    setxy ( xcor-of turtle b + x )
$ U+ j5 c/ r6 B) Y4 S          ( ycor-of turtle b + y )]]) N1 f( f; c( V, J% \$ r# z
end+ {" d7 d' N$ ^1 g) I8 m0 r
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-2 12:12 , Processed in 0.016394 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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