设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8029|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。5 H( o* i2 ?- _4 Z) E; q$ l/ [

3 f9 O: B' b/ \4 |0 f8 _但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
+ g7 \0 @# w* [0 ]3 Z0 m( [7 n8 L3 I. U6 \/ C
turtles-own [a b c d k f g h
; u! D% K# d. g% j0 ]  B1 O: J  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
  ~# l/ _% B; N3 X8 Q]: _* M/ _( r( d4 e" ?" W. }9 w
to new
( U9 p4 [3 j3 i% e  ca9 f! Z5 c+ l# o
  crt 5 * num_of_building
0 Z* k# \- m5 E  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
( R$ \, z, |( \  scatter     ;;keep center-turtle random positions
4 c5 b1 @/ k$ t8 j  unit_plan   ;;make up the building plan
+ y9 ]( h# T: j# R7 Zend3 ?; K/ o, r- W6 v' K4 ^8 X
to scatter4 b, b0 m+ u% d
ask turtles with [remainder who 5 = 0]
" T2 i7 M7 u6 B% e[! k$ Z% j+ p2 `& Y$ _$ }, j* @/ b
set xcor xcor - 6 + random-float 154 U$ M' W0 Y- B  Y3 E( E( e
set ycor ycor - 6 + random-float 15( U3 `5 z; T- V* M# I, I
]; T6 W( L: Z: I' J
end
, W: T, }% H2 ~9 {! {5 X6 c' S4 zto unit_plan * u' m( q6 W, |& M2 @) ?6 Z
ask turtles [
. y# n9 ]) G4 K% qif (remainder who 5 = 1) [set a who
( E2 |/ C, }7 ~  O+ a                          set x ( 0 - Wid / 2 ) * w+ G7 t. s# X, I/ X; o6 ~
                          set y  Dep / 2 ]
2 Z# _0 R, V2 d0 d2 I           set b  int (a / 5) * 5* ]+ l6 w. U% I; a6 U+ a
    setxy ( xcor-of turtle b + x )
7 _4 q0 U) G- X  c7 @          ( ycor-of turtle b + y ), f8 ^5 Q* [0 U* E2 s( t! C  @
if (remainder who 5 = 2) [set c who% ^- U$ m6 \* ]' L+ _
                          set x ( 0 - Wid / 2 )
4 B8 z& P, s9 A* k                          set y (0 - Dep / 2 )  ]
; f" G$ J- n- b/ _  {0 \                          set d int (c / 5) * 52 F! a# b/ B- v
   setxy   ( xcor-of turtle d + x )2 s$ _3 w# r1 `: d( R4 I2 S9 ]
           (ycor-of turtle d + y )
3 \3 j% H3 s2 _3 F8 K          5 @- _2 _3 r, U) J( F* G* R5 K
            
" H; ?* ]. k# }5 [# W$ x! [if (remainder who 5 = 3) [set k who
' {+ g/ `& T2 H# K& `                          set x( Wid / 2)  
+ k9 P" e/ u: E- i+ j$ [# f- h                          set y (0 - Dep / 2 ) ]
/ ^* p) Z. z( t6 @/ t0 H6 V                          set f int (k / 5) * 5
4 Z, c: p0 G6 s6 _  setxy   ( xcor-of turtle f + x ): `" w+ N7 I# S9 m. d
           (ycor-of turtle f + y )
* S/ o7 C7 x9 h4 ]           
# H  f1 w9 g. Y/ ~7 v           
, n! J" }6 |8 R' f9 f; rif (remainder who 5 = 4) [set g who
8 `  C! o: i! S' w9 z                          set x Wid / 2
/ v5 h7 n8 W# h- l* o. u' Y                          set y  Dep / 2 ]7 k& |9 J. k) {* x) V
                          set h  int (g / 5) * 5, R8 h0 c7 a: c, C# S; i
  setxy   ( xcor-of turtle h + x )0 d3 H* Y% V: p$ w( d# v/ N/ E
           (ycor-of turtle h + y )
5 Q9 h  J4 C" ^% k                          1 Y5 b7 ?  M. F. t$ P% ^  A! q
                          
! h- L6 \5 Q6 t: j9 T" T3 M                          ]% I: h( p: N0 ^! \9 W  J
end+ j) H3 ~! y6 P6 `; c/ t
3 Z( K( Q/ @6 r1 w0 P
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
1 r" \* V3 z4 f9 U( K应该是5 G  u4 R& ~9 [8 d- e
ask turtles [# @0 R3 I2 n; D- K
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
5 a$ J" d4 X: \# K# t% q  l' A3 u7 ]                          set y  Dep / 2 : ~4 J6 l( I- W) m
           set b  int (who / 5) * 5
/ a1 p  A' D7 j* v6 w$ r9 j    setxy ( xcor-of turtle b + x )0 O8 e9 |  i* @6 _
          ( ycor-of turtle b + y )]]4 j$ s) I. x6 U" K
end
# i6 [- ]1 E  Y$ e; X之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-30 05:00 , Processed in 0.017680 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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