设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8887|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
8 y' j9 U% x7 D( M5 }  E# X$ c4 ?% A" w2 ]
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。9 b* O! B# o9 k( l" _4 S" A4 E/ d+ h: r
1 x4 }0 \, n" e( d$ s  a
turtles-own [a b c d k f g h1 G4 B  o, N! M4 ?
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
" I" O  H& g0 Q* l$ z1 M]# q: p8 \- R0 F0 v4 A
to new
3 Y; D! E7 z3 Q- M8 f  ca/ C2 n3 d5 o$ V# K+ {
  crt 5 * num_of_building
: a( F. X% M' z4 F# w, M: d  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
& u+ ]1 r$ S' M8 }: L+ K  scatter     ;;keep center-turtle random positions $ H* I( I; N0 [" h/ H4 d0 R
  unit_plan   ;;make up the building plan
) I# |9 a% O( V3 Lend
8 x- q& W1 Z& C( G' \to scatter
0 a) {0 E1 R* i; D, gask turtles with [remainder who 5 = 0]' b! e5 m; c/ S& i3 W, ]
[+ F/ l: \0 s  j$ v1 m7 W7 j" k
set xcor xcor - 6 + random-float 15
; r% Q7 m: {/ M7 f# bset ycor ycor - 6 + random-float 150 b) Z( U6 @/ X
]
% o  Y0 [+ C$ \& d, q+ x- m1 M. p9 Tend2 o9 S; ?# b& }+ A
to unit_plan
- B# w3 H: w  ?5 F5 i. U! N* w: lask turtles [
# \7 T, n; t, ]if (remainder who 5 = 1) [set a who " m# a9 e6 `1 S" k! e4 ~8 a
                          set x ( 0 - Wid / 2 )
7 |" q" o* z$ _( E                          set y  Dep / 2 ]6 v* j9 E$ N  ?2 i, N" T+ T
           set b  int (a / 5) * 5
6 o0 ?3 }- q7 U0 [& A1 V- ?    setxy ( xcor-of turtle b + x )
" k. }; T: {' w0 T# @( v4 T5 _" H          ( ycor-of turtle b + y )
0 Y% X% q& ^8 {. [if (remainder who 5 = 2) [set c who, J# E! {% ?8 k/ X2 K# z4 _
                          set x ( 0 - Wid / 2 )
6 z4 i9 y: Z, s                          set y (0 - Dep / 2 )  ]+ e- I5 o/ _* ~; e3 d
                          set d int (c / 5) * 59 G& Q# {; K6 r, c9 r4 Q$ a% V
   setxy   ( xcor-of turtle d + x )
$ d& z% p0 h& L* i6 |           (ycor-of turtle d + y ) " J6 r! U9 S4 k8 P8 V
         
- |: S! m- o8 ^+ e( {, n4 j- R0 P3 U            3 _3 p7 Q- j2 R5 d8 ?
if (remainder who 5 = 3) [set k who
( Y1 J, N" j1 ]1 A: z' \' k0 Q                          set x( Wid / 2)  / h& J% t5 p: y! O; ]
                          set y (0 - Dep / 2 ) ]
9 q# p* T. w/ A' Y0 v( H                          set f int (k / 5) * 5
/ s. s9 P" {/ O  setxy   ( xcor-of turtle f + x )
" J3 n  b, h( l: M           (ycor-of turtle f + y ) + f! U: \" C; P9 h( s% v% |- \
           
% C' W9 A( O8 }0 b+ {" I           
* X9 r$ N9 @3 z1 pif (remainder who 5 = 4) [set g who) E! N0 ~5 B# G8 ~4 y5 o& ]1 O8 x( E
                          set x Wid / 2
0 ]+ D# T: l' |9 h+ }- ?& x  C                          set y  Dep / 2 ]
. V- Z/ S; \3 J* ]3 O6 \                          set h  int (g / 5) * 5  w7 q  ]. s9 ^2 w: G
  setxy   ( xcor-of turtle h + x )0 T& B9 L; X' K, N) e# R
           (ycor-of turtle h + y )
4 Y" t% k5 T1 \                          
2 n/ [2 U' V% `  y; p% P) o                          
/ g% g* f* _, `9 b6 v! c                          ]6 }1 Y3 |3 ]5 Y; U9 l2 f* L
end
" j% |  B4 P, u- l4 T/ h; y: f' }" {+ l6 I5 H3 E6 y4 l1 I$ [
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
2 \0 S7 ?. v9 }( w( D" H' L应该是
5 ^0 ^6 [5 B- |  N1 Y5 l  aask turtles [
0 ]1 `6 ~4 Z, d* qif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
$ ~$ y  a9 J  R2 a                          set y  Dep / 2
& v. [1 T: F; @' k4 @0 W' ^           set b  int (who / 5) * 5
* B( E0 d  n( J) O1 S    setxy ( xcor-of turtle b + x )) N0 ^+ N0 B+ U+ a- C
          ( ycor-of turtle b + y )]]
$ T3 U) `( C) b, F3 @1 dend4 U% p1 N& |$ K3 g
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-17 16:36 , Processed in 0.018158 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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