设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8183|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。1 Y( P+ _2 H# b) D+ p
3 v6 z9 p# Z8 Y6 q
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。7 H0 y5 a& ^" U/ n
/ p/ n/ \. ]7 ~, b
turtles-own [a b c d k f g h
% F# i4 K2 K) f2 L6 A' {+ ?  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
: u4 x/ r, Y# O$ v4 G]
/ O4 f) q) l8 i# {, t6 @to new$ P: o! M4 _+ X$ Q' b
  ca( v" n8 Q% v5 _0 ^
  crt 5 * num_of_building
- N7 m* b; Q0 V/ T5 ^9 t% a1 X  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]; n# Q- `) O  [  ]2 A( v
  scatter     ;;keep center-turtle random positions
8 k7 x# D6 w4 j0 V* ]  unit_plan   ;;make up the building plan
! `6 {1 _  A  G. yend# V  ~3 ]6 H  c  c5 n" V
to scatter2 p8 `) q, P; c7 S/ c/ N
ask turtles with [remainder who 5 = 0]
( G" I. c+ ]* @, I+ P( \- k[# q. m5 |0 Q. k
set xcor xcor - 6 + random-float 15. w4 L9 B5 D4 Z3 f
set ycor ycor - 6 + random-float 15
, z4 ?6 i& d$ S+ c]/ @  O! ^2 g2 H) @* z7 C
end" H8 m& g8 F: E, a. j+ q
to unit_plan
9 E3 c% ?' R7 j; t' a9 w/ n8 ~1 Iask turtles [
3 v/ p# C) |* ~# E2 s5 H8 E: Dif (remainder who 5 = 1) [set a who
6 B# P: b+ A( Y$ O# S1 B& }                          set x ( 0 - Wid / 2 ) ) ?7 W( M) a& E1 ?, F4 @: Y" O* G* e5 l
                          set y  Dep / 2 ]6 n' }2 U  |: t" e$ e
           set b  int (a / 5) * 5
6 h1 |$ ^' ~, N8 R    setxy ( xcor-of turtle b + x )
; z( e+ |( e* V2 n9 ]0 U( i- ^          ( ycor-of turtle b + y )
0 b8 Q2 k8 r2 u3 q6 Z. i/ Pif (remainder who 5 = 2) [set c who
$ b' Y- c" f3 k8 y. r; c                          set x ( 0 - Wid / 2 ) , {) B* S# S8 ^  Q, @+ }
                          set y (0 - Dep / 2 )  ]
- t! H! _4 J. e2 h" `% d* h7 B                          set d int (c / 5) * 57 b$ V) S3 s$ }7 G4 y! {
   setxy   ( xcor-of turtle d + x )
8 t4 _& z9 ?. V& y           (ycor-of turtle d + y ) . y; y6 ^4 x" f: U/ Y
          ! T: T  u6 c* J+ K
            2 m: H7 M/ Q' s/ d' L
if (remainder who 5 = 3) [set k who
5 u$ |: O$ u( N- R                          set x( Wid / 2)  " I" _8 W5 Q4 ]; w6 p
                          set y (0 - Dep / 2 ) ]9 s4 J. c  }* J1 b& i1 R7 ]! X
                          set f int (k / 5) * 59 |/ h8 C' Q- ]
  setxy   ( xcor-of turtle f + x )" w. _" Z. f" b7 S+ ~( ~
           (ycor-of turtle f + y )   |: x1 E& l. k+ x5 T, k
           
$ o* G( T/ J5 A1 a  u           
: T5 L% y9 W7 _/ Pif (remainder who 5 = 4) [set g who
2 D" M4 b! |; d) Z0 I                          set x Wid / 2
6 h, X4 `2 e+ u. c                          set y  Dep / 2 ]
, b+ _0 z0 X  y7 h" m                          set h  int (g / 5) * 5% h9 N8 W+ l2 }2 K+ J* c& t
  setxy   ( xcor-of turtle h + x )4 j6 w2 j- h* t
           (ycor-of turtle h + y ) 9 u9 ?" H) ?5 k* h' f
                          ! d4 P& c' W# l$ u- u
                          
5 f8 ]0 i, v% Y' s8 g+ h                          ]
6 X" T, g' q$ ^: Y) q2 E( ~$ L  Yend
6 M4 q" Q& w9 J( V" I2 @1 Y* P) y- k  J# J) Z/ s% E% ~- v: b2 z( I, W
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,# T% M; C+ R2 G$ x6 T; c8 [1 C+ w
应该是: m7 q7 J3 e3 b" L" I' ?1 U# E7 _# D
ask turtles [1 y6 y7 Y/ k4 ]3 `6 Q/ f+ \6 R; |' v
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
; o# N' H1 |4 Z0 O: k& o                          set y  Dep / 2 : S2 D8 \  m& d% T" Z& N$ [0 a
           set b  int (who / 5) * 5
5 z4 k* U8 I! W% U% i9 f; g+ G4 Z    setxy ( xcor-of turtle b + x )
0 t0 ]& ?  Q1 Z+ g          ( ycor-of turtle b + y )]]
& s" v! ?# D# F0 t  y9 send
. L- ^( R+ O7 y之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-15 16:33 , Processed in 0.020937 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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