设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7561|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。* [0 S0 O) ]' S/ [) i
: N5 C! {# O: X4 E! z# g
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
( r: S9 X3 c  z# T5 i+ H8 T: j* k) g) K' K3 v% S7 k3 E
turtles-own [a b c d k f g h
( v/ U2 u9 E! v& `' H% C& V  s  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
  ?8 `' c1 R& v% ^  M3 |]
% t( |4 k2 a0 q; [- s# I- w7 uto new
+ G5 t7 t' j: i0 P# Y2 \, n  ca
, u/ j2 f' L* N* ?& O  X- Q  crt 5 * num_of_building5 v& O. }0 }2 h, Y( y) U7 k
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]9 I9 Z  D, j6 t. p8 X( |! N
  scatter     ;;keep center-turtle random positions
% ~+ y; q% w. h; k  unit_plan   ;;make up the building plan/ f. q6 S8 b* K! Z' U- n
end
2 \9 [8 Z4 b4 `to scatter% s/ f: a: ?7 W: _
ask turtles with [remainder who 5 = 0]* V6 G. k# W: [$ u  p3 J
[
7 V' j4 z  W1 [# f1 fset xcor xcor - 6 + random-float 15
! f/ F3 s7 s7 V" y* b! H2 Oset ycor ycor - 6 + random-float 15& n5 Y8 q  |/ N  U* z3 r' Z
]2 ^: A# C- O$ D0 V9 m
end' h7 G1 k% F6 h& K( i* G
to unit_plan
# |+ n, `6 n/ G3 K& c9 G3 Iask turtles [
% F! b' G6 K! Z' d6 [5 Yif (remainder who 5 = 1) [set a who
" n/ m; R; w7 i2 l" i                          set x ( 0 - Wid / 2 ) 8 d  g! j6 y9 V1 n9 N
                          set y  Dep / 2 ]- N0 N- |; W9 t
           set b  int (a / 5) * 5+ Q, V1 b1 [3 R
    setxy ( xcor-of turtle b + x )
2 q/ l* R& e2 H" |9 C! i          ( ycor-of turtle b + y )0 ^& t5 W* f$ y( X
if (remainder who 5 = 2) [set c who
( |/ g) w" Q5 ~: V                          set x ( 0 - Wid / 2 )
  g" a' a% }# ?4 B: e                          set y (0 - Dep / 2 )  ]
# B/ c! ^; S9 P+ \% W$ ]+ f                          set d int (c / 5) * 5
5 y. |! V2 }1 _. M$ y" A   setxy   ( xcor-of turtle d + x )
5 v8 y# v8 h; q1 [5 l           (ycor-of turtle d + y )
& h% E% Y0 q. n4 @& ]& }1 w            n8 V5 x, c7 ~) }6 Z" E! R  z
            ) {1 o, j# h, |
if (remainder who 5 = 3) [set k who
7 z5 V" w8 k- l, E                          set x( Wid / 2)  1 i1 e' h' v7 m# B( U
                          set y (0 - Dep / 2 ) ]' C0 g0 Q$ _! w8 v: |$ F
                          set f int (k / 5) * 56 e4 k& k# y9 R0 k. g+ Q) Q
  setxy   ( xcor-of turtle f + x )2 Y; C; P: q  y
           (ycor-of turtle f + y ) # ]8 k1 `3 N3 p1 T1 H1 F+ z8 |6 W
           
" E; Y0 q( T0 R3 c! B" y           
- Z9 y& X& ]9 ]% F; [if (remainder who 5 = 4) [set g who+ t( {, S5 c& u3 H
                          set x Wid / 2
6 ^& m' G% v; e7 p" |                          set y  Dep / 2 ]
" s  r$ U  u3 ~8 j2 Q1 b' ~2 o                          set h  int (g / 5) * 53 \; S; T6 p5 |  i/ v1 W. ]6 l! v
  setxy   ( xcor-of turtle h + x )
* _$ ?- D  G/ W3 `           (ycor-of turtle h + y )
3 u2 F; s) L' n# i# H5 Q* M                          7 V& m/ q- A3 ?' b$ |3 F' f
                          
8 F' ^, S$ Q) P! F9 r* V' c% M                          ]- z* G0 w9 ^! `6 r: @
end
- Z2 @! q! L& P, ?3 w% ]  ^0 |2 ^
: \/ ~! `5 g$ d4 Z! Y3 _1 ]- Q[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
5 B0 _- k, z3 [8 M) d- W6 N应该是/ e# M$ ~# B+ I" @  x
ask turtles [
" U, A  O  I0 Z  \if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) " G+ S3 U; R- N5 t
                          set y  Dep / 2 ( A+ Q: o2 O3 x2 c# X& K  U' R. x3 E
           set b  int (who / 5) * 5
3 P! x* o0 C2 V1 C    setxy ( xcor-of turtle b + x ), W& V  b; t/ [( `) g: [: q
          ( ycor-of turtle b + y )]]
) v9 R3 ^! V; ^% g6 j& Eend
) w3 F4 v1 ~2 O% O0 V$ {6 C之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-26 22:26 , Processed in 0.020322 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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