设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9064|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。+ Y( _/ Y) a# T

4 E+ Y: |: c& k4 }% w- G但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
, [$ f' Q1 X2 Z/ U# ]
: w! S# L8 e: Sturtles-own [a b c d k f g h: `  _& {" o$ K+ n- s/ f
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
" X# C  k4 z+ ~6 f% w# J: n' V]
+ x& D2 {/ N; J$ [* Eto new7 ~, ?/ f# c- I
  ca
: e1 ]( C1 s& O# J1 |4 F( K  crt 5 * num_of_building
7 A: k: H2 Q/ P  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]- U, O- l! w2 k6 y" C7 {+ j; S& x1 F
  scatter     ;;keep center-turtle random positions $ F" x0 \6 I, z7 q; h6 d
  unit_plan   ;;make up the building plan5 a1 w) d7 t6 f, D
end
# [, }' L  ?) O; h/ t0 d. w7 J) A& Tto scatter
) ^& g7 d% y5 Y6 \4 kask turtles with [remainder who 5 = 0]( o2 a* O* @+ l9 n/ p& J
[
0 G6 E  B' u/ p5 E' f) ?- M4 B+ jset xcor xcor - 6 + random-float 15. z! l" i# r+ v' |7 l, S
set ycor ycor - 6 + random-float 15) ^+ S3 }$ I' K& B+ X
]- L: f& Z; y& O' u. ~3 F
end7 Y( M' U. R' ]" C
to unit_plan
" h: Q% ^0 R5 y6 lask turtles [' S. T2 B+ J/ l# Y( o  B' F8 l
if (remainder who 5 = 1) [set a who / H6 t# B. v' H1 T. [" Z- K! ?
                          set x ( 0 - Wid / 2 ) ! n( Q1 `9 n* J  C' V
                          set y  Dep / 2 ]/ j9 D7 T7 n3 w/ o0 q' [$ X7 q+ n
           set b  int (a / 5) * 5
+ L0 ~8 L" {# e4 p6 y( d    setxy ( xcor-of turtle b + x )1 O7 @# w1 N8 H$ ?- J, l
          ( ycor-of turtle b + y )
! d. ?- G) O4 @3 E  Y" Gif (remainder who 5 = 2) [set c who
3 L) j* d/ N0 `; T' S: s                          set x ( 0 - Wid / 2 ) & L; M( Q, @2 \( _
                          set y (0 - Dep / 2 )  ]
( j% B/ M/ M$ N: q                          set d int (c / 5) * 57 C) V8 I+ B! C6 E
   setxy   ( xcor-of turtle d + x )+ b/ ]% r, A" ]( T& K* O; h' R
           (ycor-of turtle d + y ) : x5 C) o# _+ z1 _
         
8 z* ^$ B; r" O  {2 U            ) _% y7 X" u$ }6 _* v: |
if (remainder who 5 = 3) [set k who
& w2 H+ g: C1 m                          set x( Wid / 2)  
* V4 U! Q. Y8 y8 G3 b. `                          set y (0 - Dep / 2 ) ]
% O2 |: ]. ~) p1 [0 A( _9 I9 s                          set f int (k / 5) * 5/ q) q# N# v  y% J. J
  setxy   ( xcor-of turtle f + x )
9 c! U) i8 U& U1 l: ^$ s           (ycor-of turtle f + y ) : l" `% O2 N) Y) w0 p% `: s
           6 A  Y+ P9 `! N; N
           
7 Q+ _- D/ v+ j. oif (remainder who 5 = 4) [set g who
, d. x  f& s) b- [8 |) ?* y# U                          set x Wid / 2 4 u. A, L: u8 P. m
                          set y  Dep / 2 ]4 p1 C* e# @$ E6 n
                          set h  int (g / 5) * 5
+ P$ i$ d  G6 B0 }4 p9 r  setxy   ( xcor-of turtle h + x )( P! i( Q7 {, k+ v$ q$ b+ d$ `7 i
           (ycor-of turtle h + y )
9 U. B3 ^2 [# `. E/ V; a$ J7 B                          
: g- H2 @3 b4 i2 {; t1 G, Z* F                          
% G; z$ ^3 U: \: o4 J( U" T1 F. q0 X/ W                          ]
' ]8 G- z& K* B6 rend0 L/ l8 d1 M: _6 I) y

) q1 u3 |2 g5 S. w; C& X[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
0 P* l1 R, K: n应该是
$ |4 p1 K  V8 x( yask turtles [% T  D) K* K% ^) h
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) $ t3 |, b) o! o1 w" @1 E, y
                          set y  Dep / 2
. G! d3 _7 M) b# \' W           set b  int (who / 5) * 5
6 R3 B- u# j2 g# Z' ^    setxy ( xcor-of turtle b + x )
- k; ]6 F2 ~4 i$ L. o          ( ycor-of turtle b + y )]]% |3 Q1 ~- B" R7 U* ]
end
/ K: w; z, O; f' n5 f  [4 H$ G之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-13 08:49 , Processed in 0.016944 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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