设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7877|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。4 E. X% L. w0 u; N, ]6 k

! s+ _/ z& h1 _但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
2 h+ ^# g; I! o" {1 Z' o$ j' i$ f# s9 m0 e' v/ X  `  K
turtles-own [a b c d k f g h- T7 I4 G8 T1 ?3 l+ I
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 2 ~$ ~/ v, C" i) M8 ~: l8 y: r
]
0 T2 f4 M* w4 l  Cto new  Z/ V& Q# ?* |. A* ^
  ca
6 b4 C7 {4 G$ C7 |: j+ c  crt 5 * num_of_building
" G; Q! p1 m6 S  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]5 H! H0 c& E  n8 f; f5 g
  scatter     ;;keep center-turtle random positions
9 F/ g5 r0 c3 Q& c  unit_plan   ;;make up the building plan
# M' u7 I- e* X# H  r2 p- {4 mend$ S8 v8 e' W4 x3 M, a' l3 T1 N7 b
to scatter
- k! o* A# B" u$ X- Oask turtles with [remainder who 5 = 0]% b! }# R( }) r, Q5 k3 x4 _: \  w
[
, U# x6 J# f& P( X* I8 @set xcor xcor - 6 + random-float 150 x* I; j; Q& g4 ]9 u- K$ o
set ycor ycor - 6 + random-float 15
2 ~1 w$ ?+ |/ `- o4 C]
2 @6 C& W0 o* E* \- kend
  Y8 f+ W) R9 {, ~3 n! Vto unit_plan : ?3 Q( v' [: J* t" z
ask turtles [
% w1 R( R1 J% ^, S" M( i& \if (remainder who 5 = 1) [set a who
, x. N, `* t/ g. Z( T                          set x ( 0 - Wid / 2 )   [, y5 g( r7 E1 f
                          set y  Dep / 2 ]
, E+ ^( l5 A' I) R           set b  int (a / 5) * 59 V8 b/ V1 g# ~1 t$ {  q% _
    setxy ( xcor-of turtle b + x )9 [! S' Q. J- W7 m/ j
          ( ycor-of turtle b + y )# V0 d6 c. x$ M0 a3 x  h# _
if (remainder who 5 = 2) [set c who5 f  t3 n  L' u5 }9 j/ a5 }0 y+ S
                          set x ( 0 - Wid / 2 ) 3 z; O+ u4 U; J7 U
                          set y (0 - Dep / 2 )  ]
' L& K; j8 h* G- G$ n                          set d int (c / 5) * 5  w9 [! [& |* L# z
   setxy   ( xcor-of turtle d + x )/ g5 p3 G. e; ]& B- X# H/ A
           (ycor-of turtle d + y )
! P1 N- r; t+ J; _( {         
# I4 `' J( M  _( D# D8 v6 O8 D( |$ O5 F            5 ]6 Q' L4 r" U* C
if (remainder who 5 = 3) [set k who
1 _+ x# b! @* F; N/ n0 ~  |                          set x( Wid / 2)  % b. i! r% B0 S+ ?# R4 [+ |
                          set y (0 - Dep / 2 ) ]
9 J3 Y8 H* _. x; e) j! Z                          set f int (k / 5) * 5) }* M% s, o, a( s+ m; T
  setxy   ( xcor-of turtle f + x )
3 d  n" R% m9 F! H           (ycor-of turtle f + y )
+ U! O0 ~3 \9 y  y           5 }& v  n  a' p) h1 C% D9 h! k
           5 s& N1 [. A& n9 _1 L1 {- P4 l
if (remainder who 5 = 4) [set g who
+ U! ^" n; e% D; h6 }                          set x Wid / 2
- O7 j: ?  p: Q% X8 N, }; ~                          set y  Dep / 2 ]
% ^0 I( U4 G* b% [1 U$ \7 [                          set h  int (g / 5) * 5" P6 L0 a( @. j
  setxy   ( xcor-of turtle h + x )- x( S9 K' D9 O0 J9 O. Q  A$ U
           (ycor-of turtle h + y )
. t7 `5 a9 d7 c                          - G6 i' V0 S' X/ ?- U
                          % K+ @* n' l; @! S9 @
                          ]2 |/ J3 c' y$ g# a
end
: w) a  _6 {* C4 Q: J$ z" ~& K! g; p* ~" u( ]$ L0 _* \
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
2 _* l! c5 r1 o应该是* g9 V6 n3 ?1 t) ~, \* f6 ?- b
ask turtles [
1 {7 T& e+ G, v7 N/ `if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) * l! ^( N: I- n6 `2 M9 e; c
                          set y  Dep / 2
& V% I% Y: E/ A+ A/ ?7 U           set b  int (who / 5) * 5" Z' [6 }: Y( F
    setxy ( xcor-of turtle b + x )
1 V) ~+ }/ O1 j# |          ( ycor-of turtle b + y )]]
# U  n6 S/ J* S6 Xend
0 C1 Z1 y6 O4 ]之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-13 23:35 , Processed in 0.035951 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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