设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7450|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
, k& }; g& F2 |$ w" w/ R* F* O7 _) ~7 x* T( o+ \
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
+ V4 T6 x; T, t2 D. A; G; @# @+ P& X
turtles-own [a b c d k f g h" D8 Q4 p( g- w' L# W
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
6 A/ l/ Y2 s" A( J8 @]
; s1 M) @1 a1 y% `- A' |: Zto new
9 z0 Z/ N! ?* B3 Q0 _' J1 E1 K  ca
& b9 j9 ?3 V0 k  c  crt 5 * num_of_building
; O) j0 T8 W* _1 T! Y  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
  `2 w  j+ G/ G$ x5 F  scatter     ;;keep center-turtle random positions
" D; o# ?, ~( Y9 v  unit_plan   ;;make up the building plan, {  @, }. ]: b; y- I9 J
end$ t" d7 \0 J  |, T6 u- z1 q0 F+ r
to scatter
/ }# ~6 Y1 ]( A' Q8 M& Fask turtles with [remainder who 5 = 0]! m2 W; w# y' V. Y- Y
[
$ }0 e7 w4 f6 ^9 o* ?set xcor xcor - 6 + random-float 15
" c6 \$ Y" C, ?/ {set ycor ycor - 6 + random-float 152 P8 s* U* O- M* _8 e
]
; [, R! o. g: Tend
9 N( R0 U+ g* I% \5 Gto unit_plan
# W6 l# M0 e6 _" |" I5 S/ Eask turtles [
4 k1 [2 {1 l. b/ _3 Bif (remainder who 5 = 1) [set a who
# \( W: @& [% V1 i! |$ ]                          set x ( 0 - Wid / 2 ) $ j( }* o& ^, `( l! h
                          set y  Dep / 2 ]  C% v: `% c- a" S9 G0 P. O
           set b  int (a / 5) * 5
& H2 W- A; M( Y# I% D$ d    setxy ( xcor-of turtle b + x )
% E7 ?8 c- i3 y; ?          ( ycor-of turtle b + y )
3 l" R, R/ ~# s5 W2 R' {, Tif (remainder who 5 = 2) [set c who  T+ u& f! [: S, B; c
                          set x ( 0 - Wid / 2 )
. T3 u, m7 o* l+ w" r4 f  Q6 v                          set y (0 - Dep / 2 )  ]
$ z  J0 ?7 M$ P8 d                          set d int (c / 5) * 5; F! P3 y% _9 j. z
   setxy   ( xcor-of turtle d + x )  j$ v5 T* p4 S7 M
           (ycor-of turtle d + y )
  ~) V! Q3 q/ E4 r  u         
; z) n( }2 f7 s+ H; c& l1 c: n            
  _- A6 L! X4 s/ wif (remainder who 5 = 3) [set k who; j" C: f( U( H! f" s& n* O
                          set x( Wid / 2)  3 H& k$ l! p$ N5 u* Z( |
                          set y (0 - Dep / 2 ) ]
5 m/ ~2 H$ Q5 V& l3 }* e( D( S* |; i                          set f int (k / 5) * 5- d1 J5 \* Z2 I  N
  setxy   ( xcor-of turtle f + x )$ R# @& N4 v% _* D8 J4 Q) ^8 K
           (ycor-of turtle f + y ) . d6 O* |  e( T* I$ d; `
           
/ ]/ o9 ?- q- H, g$ h( s7 _4 L           6 U. x" G; @( O9 R( v1 p
if (remainder who 5 = 4) [set g who
" l$ p+ q( Y# R0 E; U                          set x Wid / 2   v- d4 h. H. ~* U9 H% Z
                          set y  Dep / 2 ]
5 z7 {- s& R! m5 G                          set h  int (g / 5) * 5
  v  i# K8 }8 m4 F. a3 V  setxy   ( xcor-of turtle h + x ): n" f3 |7 }3 x: R( J
           (ycor-of turtle h + y ) 3 N: t* c- A+ H' {+ g, W  K
                          
2 [; J/ v4 Q# H# U$ h( |                          
9 N, \  [% s, p                          ]: p" y( g1 x* M6 S& E1 E
end: c/ L% [8 d7 J6 }, V# ]6 I: |" R

4 t: W% y" D; @3 _3 U3 S[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,: e  E* w8 D/ M6 z
应该是
9 q, [2 b( ?# f9 sask turtles [$ F$ a% M3 x# l" }' M6 y, s- S3 [
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
+ u+ }; A; K4 V5 `  i- a$ x                          set y  Dep / 2
; Z! d5 F; W& r# ?           set b  int (who / 5) * 55 R. U* C- i# |4 n" g# A* o
    setxy ( xcor-of turtle b + x )
- K8 b, ?0 Z) t# ]; a          ( ycor-of turtle b + y )]]' Z; ?" v7 N/ [3 ~/ r" n
end
& \6 m) e6 A) A之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-12 14:36 , Processed in 0.015591 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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