设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9086|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。$ M/ R: `0 g8 e7 b7 w' v( c3 |/ f

; l  h5 P) X9 o- _但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。8 S6 X  T. C$ [2 L

) [* u$ F% ?, O/ b' m% b& \turtles-own [a b c d k f g h2 A/ J* _2 I# A; w$ g  J& {
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
" a$ W6 X0 o, G2 \" _! t]
& Z# f0 B" e, m$ n/ hto new: [! T6 J" ~% A- ]3 P1 m
  ca
4 e' N- \& |/ u  m1 T( d! q& v3 z  crt 5 * num_of_building
/ ^& h2 c0 b9 I5 [( ^* y7 n, O  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]3 C* p; G1 C6 w$ o, b# m, V
  scatter     ;;keep center-turtle random positions
( \7 `+ [* Q% _9 ?. i6 w0 s  unit_plan   ;;make up the building plan
3 y: Y* T  p8 Send
- k* @2 F! n  ]+ Jto scatter
' u/ h5 V2 Z2 y5 M6 _& a2 _ask turtles with [remainder who 5 = 0]. ?4 `' O1 m& N1 \6 t
[
/ b! N/ {6 E8 B: }set xcor xcor - 6 + random-float 15
: Y% x( Y1 k0 E8 Q$ p0 ^, vset ycor ycor - 6 + random-float 15+ E( W4 S3 m8 p/ q6 q
]
3 b& p" h) {4 K" x5 Oend
; j- v" v6 I5 d3 p& ?to unit_plan & {% g. }: ~: c8 L! t# W, \
ask turtles [
5 I: d- F* a/ k- Sif (remainder who 5 = 1) [set a who
' h9 [5 A: K- n' ^                          set x ( 0 - Wid / 2 )
0 V5 u( C8 _1 _/ D: m                          set y  Dep / 2 ]9 i: e! {$ C$ K0 k3 g! `
           set b  int (a / 5) * 55 S! q6 h$ x3 i/ z# V
    setxy ( xcor-of turtle b + x )3 }' t# \. @& M7 E& k" b& e* Z
          ( ycor-of turtle b + y )% w+ P$ p; }! ^' V: x- ^
if (remainder who 5 = 2) [set c who: ~/ g& p! E5 a
                          set x ( 0 - Wid / 2 ) ( k  x; c. C8 c8 r7 R) R
                          set y (0 - Dep / 2 )  ]/ M3 @8 Q6 r% F+ M- F, Q  M
                          set d int (c / 5) * 5  t* |( E1 B0 O4 V$ T  t6 z2 P! m
   setxy   ( xcor-of turtle d + x )! C' f, w$ c/ @; b+ @& M1 G
           (ycor-of turtle d + y )
, b( N$ o3 m) w          ! G  z' ^0 M  ?  o9 M2 O3 w
            ; T- R) a* q9 q8 G
if (remainder who 5 = 3) [set k who: P2 C5 d; w& @8 ]0 Y- v$ v& Y8 B
                          set x( Wid / 2)  
$ _6 G7 u  {& |5 X  O2 U5 L4 J                          set y (0 - Dep / 2 ) ]- G% C* X* Z! a+ ^0 l; C( O
                          set f int (k / 5) * 5; P5 _+ k+ N. _0 k6 \% `- X- V
  setxy   ( xcor-of turtle f + x )' ^7 |  k* I3 y' g
           (ycor-of turtle f + y ) ( ?; ?3 D% t3 w- ]
           
0 Q1 L: U# Z2 n$ [/ R( L6 C           ' @# h9 h. f9 D- [' y$ Y" ?% u
if (remainder who 5 = 4) [set g who
& ]% R( U# m. a. Q/ Z5 B                          set x Wid / 2 ) D* G* c+ L4 C# W
                          set y  Dep / 2 ]; v/ @3 ~8 p2 u3 S/ k9 v6 Z
                          set h  int (g / 5) * 5* Q9 G! q. W( L( n' Z  o6 [
  setxy   ( xcor-of turtle h + x )# q+ {, i# ^3 m5 H$ z* G
           (ycor-of turtle h + y )
: s  _  G0 `+ I1 H0 J/ X7 M) l7 z9 h  }                          8 Y" y0 S8 |  |# v
                          : y7 ]. b; x& V: L9 [1 I) H
                          ]  N! O  n* l/ E) Y
end+ r$ P% d7 z; I, N) H% `6 m1 g: k2 l

/ v. B3 }# R/ N( |3 E1 C  u[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
6 b/ A# M. Z1 n+ z7 ?应该是. I! U- _% V' H& y! t7 t
ask turtles [
% D; V- A' R6 p! p& uif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
; G2 `0 A" O( R                          set y  Dep / 2
6 B+ o; I5 d  R           set b  int (who / 5) * 5. y3 X% E" q. \/ c& o& ^6 h
    setxy ( xcor-of turtle b + x )
% j8 a7 {& r6 ?- W, v5 V          ( ycor-of turtle b + y )]]
+ T+ l( t; {# w. U; Q: Y! g- Oend
' \% Y2 P) C7 h4 c" W( ~之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-15 17:56 , Processed in 0.018534 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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