设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7655|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。1 v) s) b# o' W
# O& H% s: A( H/ k2 N9 I
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。( N) z' [$ L' m  M- T
( X$ @& x; E6 D! d% ~' j' O* N$ N
turtles-own [a b c d k f g h' G7 b3 B. ?. t& R8 y4 s
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
* G% q: m! Y4 x4 T; I; s" O! v]8 ^- _- V1 o% U  ]/ B& h; T0 C
to new' k, g' S0 S( N7 x$ d* m; i% H
  ca
# t0 ~/ d% |* v( B' T. d7 r) V4 M  crt 5 * num_of_building& ]; e& Q: z( i7 H7 U* H
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]], a) l4 |  U2 ?, d) ~1 [8 c. |, p; b
  scatter     ;;keep center-turtle random positions * N5 G2 h7 W" L0 Q4 [% a% D+ U6 q, b
  unit_plan   ;;make up the building plan
; b1 b) D, L2 h) `( M- g, wend
) G0 n- R' P' c) l6 l2 r3 c$ [to scatter" s$ z; W  z/ Q$ \8 X6 r" ]
ask turtles with [remainder who 5 = 0]' r/ J+ l, }. E" X
[
( s3 ~0 H" n; W; d+ G% P- [set xcor xcor - 6 + random-float 15; }7 B1 V8 U3 ]* }: r1 A
set ycor ycor - 6 + random-float 15
0 D, [; w$ y, c+ c; @]6 r6 i- P# W6 N4 J) Z+ V. F% n
end! y$ R6 |& E* s$ U
to unit_plan
2 V& B: N* M- y& N) Kask turtles [
$ l  _1 u8 b; }7 Dif (remainder who 5 = 1) [set a who 0 \; b+ ]1 f( y0 L- P
                          set x ( 0 - Wid / 2 )
- k0 e4 w; A4 Y# [, s4 E( K                          set y  Dep / 2 ]
( y3 [  D2 H  `$ }$ S           set b  int (a / 5) * 52 P+ {; i) ]* a: v' z" m. Y* c" L
    setxy ( xcor-of turtle b + x )
, d9 I- G2 f, r0 n0 t) S          ( ycor-of turtle b + y )5 e; |" J4 v1 Z* L0 i, c
if (remainder who 5 = 2) [set c who
# x) A/ B* {% y6 Q* y5 o                          set x ( 0 - Wid / 2 )
) ~. S: V9 c! b' _% x% m                          set y (0 - Dep / 2 )  ]) {, V* p1 D) O- w
                          set d int (c / 5) * 5
+ l7 G2 A6 }, a# X+ z, z   setxy   ( xcor-of turtle d + x )! d  V! |3 l8 s( U7 q0 y3 z
           (ycor-of turtle d + y )
2 v3 D% \) K2 q( Y" s5 s         
1 t  G7 j$ [0 H8 y* D            
/ \; Q; i1 E9 i; h; zif (remainder who 5 = 3) [set k who5 D: W7 }+ q2 y, R& m6 t+ ?, O7 I
                          set x( Wid / 2)  
" \0 j8 j' }; y7 o% R                          set y (0 - Dep / 2 ) ]) R& V! ~0 C9 g2 n9 |7 K4 u
                          set f int (k / 5) * 5
8 |+ |# F  N0 g/ S& u% V! c  setxy   ( xcor-of turtle f + x )- X% Z6 W& u$ `* h7 b: j
           (ycor-of turtle f + y )
* _- _7 O1 ~) P0 n  R0 p           
" j- e- k/ ^, v- a' c4 S1 x3 g           
& g0 e2 v: R) y. mif (remainder who 5 = 4) [set g who
8 b1 m+ i5 g; ]- F* `; l                          set x Wid / 2
& L" h1 t# M7 {6 N+ R& V                          set y  Dep / 2 ]
6 j$ \% V! l$ |& P                          set h  int (g / 5) * 5* f# O0 }# l* K+ }! ~+ V$ P5 N/ z8 D
  setxy   ( xcor-of turtle h + x )3 Q7 ^0 U0 A* d& p
           (ycor-of turtle h + y )
. u) A" b1 v& y3 U/ L                          
. w& m, {! p4 @9 U6 B# f& ~                          
, }9 P4 W3 c- ?3 Y) P! p                          ]
: M0 _7 s- `7 }9 O1 k+ Z2 Nend
  L* {5 {  ]1 ]% H
- i  T# F- {" g; y[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,% \9 @# B  b  U* N: K6 H
应该是( E/ L/ L0 n* v; r0 U# O
ask turtles [# n/ J; R2 B; P$ r
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
* D4 D; q$ L' ]0 Y( C# _2 E                          set y  Dep / 2
4 q6 w2 L" T! d5 F% r5 g           set b  int (who / 5) * 5) p2 X  D6 C/ T. A" E7 n
    setxy ( xcor-of turtle b + x )
, y: T) G) }" X8 {) R          ( ycor-of turtle b + y )]]- f9 l- W+ X9 b" Q; j
end( i- ]$ G! Q! I8 K  B8 {
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 05:08 , Processed in 0.018627 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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