设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8597|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
3 T& i' m, o: G* M3 B* ~8 _' k/ M! }  R' S) U- a, N8 y
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
9 f! c; q: _# C. v( v8 u# a8 A9 p8 x
turtles-own [a b c d k f g h" H2 u. D8 ^' ]& G8 V: s9 U' @
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
# X5 i( \$ b7 M" \5 S8 J1 K  B]8 _7 h1 f5 w3 R
to new
* ^. [  v! M: j7 L6 G/ x" w' Z5 g  ca5 o& _2 }1 |( [; L
  crt 5 * num_of_building& F1 X5 R7 e1 C: F) z& M
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]8 S8 y0 H; T& U- s& ~& J8 U
  scatter     ;;keep center-turtle random positions
& [8 Y4 s8 R/ s1 G( |: p5 ^# t  unit_plan   ;;make up the building plan
: i, O  c" _$ }) |end% t9 z# i8 P, a6 V3 z
to scatter
# u$ \/ w- |6 D. lask turtles with [remainder who 5 = 0]
, S, u4 N3 @( u) Q[
9 K$ E) w, R1 _9 uset xcor xcor - 6 + random-float 157 O* ]9 w- C) K& `7 h
set ycor ycor - 6 + random-float 15
. K! W5 m; i( Q  N6 U% k% `]% g9 Y* W2 A- O; x" A
end& s9 j; `, P* t6 c- T9 V9 c
to unit_plan
8 p9 ~9 L5 k$ U  Z8 }  `ask turtles [
; y( e- O1 m+ c7 O8 ]  a# e0 qif (remainder who 5 = 1) [set a who
9 @" A: q$ C7 V2 O                          set x ( 0 - Wid / 2 )
0 A; `/ ?8 F. l- i6 k& a                          set y  Dep / 2 ], r1 y5 _( d" W; W5 x
           set b  int (a / 5) * 5
( p% X" w9 o1 I: H1 F- b    setxy ( xcor-of turtle b + x )0 t$ M8 Z  N( Z. ?" j2 K% @) S& K! n
          ( ycor-of turtle b + y )& f4 w, N6 Y  m
if (remainder who 5 = 2) [set c who  I1 [2 L6 x; Z# H! o& e
                          set x ( 0 - Wid / 2 )
: X( h- A+ x2 @$ T# C1 `7 I: f3 X                          set y (0 - Dep / 2 )  ]
; ]  |$ k0 M3 O                          set d int (c / 5) * 5# R. y& X# f' w, t' c, d
   setxy   ( xcor-of turtle d + x )& j. [( f/ X) r4 x. B" w. `- r
           (ycor-of turtle d + y )
, R% i6 E( Q8 u3 s+ J8 N# }          * A# p, r7 g7 ^2 L" q
            , @7 H- o) ]9 J, ]* m7 ?3 Q
if (remainder who 5 = 3) [set k who
6 M2 [) O; I4 O' t9 n2 ~0 |8 W- F                          set x( Wid / 2)  % F  t1 F' Z: e: Z2 a
                          set y (0 - Dep / 2 ) ]
& j! u3 W8 x% p3 C7 [- P4 V7 r! x                          set f int (k / 5) * 5
3 Y+ x0 n6 c# b  setxy   ( xcor-of turtle f + x )' o, f. V; s5 ?8 H
           (ycor-of turtle f + y )
3 {. N" ^+ `% W8 d% a5 a& f; Q5 W; ^) I           ! H* y% f1 [% b6 P
           
2 O9 l6 T+ m; [2 [/ l5 {9 e& Pif (remainder who 5 = 4) [set g who( l: z0 N" S( e
                          set x Wid / 2 7 g  \6 {. G0 g( N! E
                          set y  Dep / 2 ]% @, R+ |3 y3 l, R6 |
                          set h  int (g / 5) * 5
* v; E7 k; |/ b  e# u. c- t  setxy   ( xcor-of turtle h + x )
$ u- h/ D8 a9 D0 i5 R) \           (ycor-of turtle h + y )   I" B1 k. l1 L) w
                          , A' e% c: Q6 L# d; A# A; d" T
                          
5 v6 K! A4 h! G; R; E/ U                          ]% ]6 @& P9 l. Y& T, v
end3 O+ e' X6 J7 p2 @* m% p( d+ c

1 ?# Y9 D9 x, b5 d. A9 S! o[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,% O# h. H6 d& F# C
应该是, T( e! ^0 i/ T( g5 S
ask turtles [
7 x& Z9 I7 o( |# b: [if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) / y6 I% M/ O3 S5 K3 W8 E, S
                          set y  Dep / 2
' Y2 {6 w, z! E1 N& i9 I# t3 C6 a           set b  int (who / 5) * 54 x" Y* N; e' J0 D
    setxy ( xcor-of turtle b + x )
/ w( r2 \1 h, n% T  O          ( ycor-of turtle b + y )]]
* z8 C/ S2 l4 I7 M- d' N0 ?( ]end
- r8 V  G! W; I) U2 ?1 v3 a之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-16 12:46 , Processed in 0.016142 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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