设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8026|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
+ G& H. I4 {# P6 m8 D3 u$ p# k% e# g$ J4 I5 G: C8 ?
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
' \* [! O; [; h8 A: K" B2 w0 M9 ^* n$ B5 G# N
turtles-own [a b c d k f g h* a  A( @% g' ^# v0 f8 ^: E3 o( P7 }
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 3 [' w, P3 B9 W0 f9 W; P: ]
]) n4 |' n; |. ~! A
to new
+ g/ F) {4 @' n: [( N0 X0 j* I: f# b7 _+ V  ca; |- w( R/ s8 S$ u# O6 U" Z
  crt 5 * num_of_building; o' Y' g2 \7 ?! F0 k
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
! J+ V7 J0 |/ P  scatter     ;;keep center-turtle random positions - }2 o: z; L/ b- L5 H6 c' H! _
  unit_plan   ;;make up the building plan
& r. D7 U, ?/ s  {; Bend
# _5 x- b  h$ k! U/ \% tto scatter
/ f* ~8 d: ?& @; W& J2 {ask turtles with [remainder who 5 = 0]
2 n% t9 w1 Q0 N, k[+ S6 r3 H5 S: N  c8 x! [1 `) |
set xcor xcor - 6 + random-float 15
/ d  N: G- ?3 C; r' m# `2 yset ycor ycor - 6 + random-float 15
& l+ p" \5 K, o9 \' d]5 }- w% d4 J1 J4 j) K
end
; A7 X: T0 Z2 _! u, d5 Zto unit_plan   ]5 u8 Z$ m8 m4 R5 [5 f& {9 |% V
ask turtles [
: p7 }, {7 B; b' Y3 Bif (remainder who 5 = 1) [set a who
4 g7 n( A# t' @                          set x ( 0 - Wid / 2 ) " s" \1 a) v, r
                          set y  Dep / 2 ]
# c* S8 F0 e* ^- d7 c# @           set b  int (a / 5) * 5
3 {# V; E, ?! E1 ^    setxy ( xcor-of turtle b + x ); }% o9 b% E1 `9 ]( v
          ( ycor-of turtle b + y )' ^/ e+ _  N( h
if (remainder who 5 = 2) [set c who( q0 R& h+ x5 c# |# s7 \
                          set x ( 0 - Wid / 2 )
/ `- N1 m0 @2 N, j) e  ?                          set y (0 - Dep / 2 )  ]! n6 U: g; Z' d% r
                          set d int (c / 5) * 5/ r6 L4 k, [2 i( Z/ h) b
   setxy   ( xcor-of turtle d + x )  p6 [7 q( y2 t1 c0 U4 r1 ^% E
           (ycor-of turtle d + y )
" h- @* I3 Z$ X! W/ D! M" {          4 A! P$ K9 P9 f: m# N$ ]. D
            
6 {/ X# k! g7 Z7 Cif (remainder who 5 = 3) [set k who
% ?* T. Y4 j. a) A5 l9 X# P" d                          set x( Wid / 2)  
. ]: r* ?8 g4 z' I$ v) i                          set y (0 - Dep / 2 ) ]
0 \/ f, {1 \  {9 }+ G5 [5 d                          set f int (k / 5) * 5
# O- @- q3 Q# q: S  setxy   ( xcor-of turtle f + x )5 }% q4 f0 x* `# _. c2 n
           (ycor-of turtle f + y )
* l! i/ x' m" o  l/ g7 Y, H           . w& N1 b2 \' d. X
           2 ?, L( d5 k6 m) t3 B# o
if (remainder who 5 = 4) [set g who) j3 D7 {1 a! {: O( G0 {% Y! s
                          set x Wid / 2 # h& K, @$ f/ ?# M% B
                          set y  Dep / 2 ]' Y! m5 a( N' i* s  n. ^
                          set h  int (g / 5) * 5
8 z: S0 m1 [6 K- H* A7 i( p9 G8 M/ H2 q  setxy   ( xcor-of turtle h + x )
6 m) `1 C% }4 N" M  W4 g           (ycor-of turtle h + y ) ' F' q5 D7 ]# h' r- t. ]
                          & V+ M$ G) i8 Q
                          
3 Z/ K( G" u% }$ f  {; G                          ]1 x1 u8 I; {8 H) W. ^; `* L
end
: I: o8 e  J: F. j
' u8 j2 c" z9 }/ E' _' F- e2 s+ }[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,+ F( s6 u% O; U" y) g4 W. _
应该是1 E! N# N7 q# ^% m& B
ask turtles [+ z$ B, U( B" I* O% g; J2 a
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 8 s/ V  G# F, w7 I+ ]
                          set y  Dep / 2
& r6 Q' A- m1 H% c% Q' g" S% m6 J           set b  int (who / 5) * 5
6 }) e4 r& K4 U( g    setxy ( xcor-of turtle b + x )
3 Z. n, ?2 O" C+ l$ x. P( b1 i          ( ycor-of turtle b + y )]]
, n9 M( P" x9 x6 V( Rend9 X+ @2 g! {5 l9 p' T. [
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-29 18:13 , Processed in 0.014041 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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