设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7840|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。' [$ g3 O; N' h, A7 V
: K& \; Z: Q1 ]
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。! X0 S, Z; o! B8 |* W  v( Y

) A2 j- G5 H$ a' H! [turtles-own [a b c d k f g h
8 A0 _' K, m" C$ b! B' j  x y     ;; these are the leaf-turtle's offsets relative to center-turtle * K3 a6 s) z6 I3 p* B% r+ @3 y
]
$ |" N- z" A! M; }( Vto new8 \( e# P' D$ j3 w5 j
  ca
' f- {! V' l# k* }8 w1 e( P2 T  crt 5 * num_of_building
8 D2 P6 ~# L+ k, u5 v2 C% H3 h7 x  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]: P4 t1 i9 a2 D% R& e6 ^$ Z3 `/ X' ?
  scatter     ;;keep center-turtle random positions 8 j# f9 O! y7 J$ ?/ \) G# [
  unit_plan   ;;make up the building plan8 C* K6 E+ K- D6 a+ [! w  |: A
end0 |0 F3 Y6 h6 X* L. D, \. g
to scatter
$ h7 W+ A8 U% S; X. eask turtles with [remainder who 5 = 0]
& f1 J, a* i1 T[
: r8 i) ~1 F, d, wset xcor xcor - 6 + random-float 15: j' C. C1 z; R) m3 x1 O
set ycor ycor - 6 + random-float 157 i( f6 @: a. O7 p
]5 _$ W# G5 y4 _3 y' l5 ]: V
end
7 o  _1 ]# h7 W; A0 \. Mto unit_plan * r) k$ _! I/ A  ]
ask turtles [
# f/ m* S" l! F$ r9 C8 qif (remainder who 5 = 1) [set a who
4 V% A$ s- j0 s* n+ A                          set x ( 0 - Wid / 2 )
8 q% J( K+ [6 M+ ^% E: p                          set y  Dep / 2 ]/ n0 B  Q1 i4 P2 ]. W
           set b  int (a / 5) * 5
  F5 s4 x6 n3 ^6 F; D) l: R    setxy ( xcor-of turtle b + x )
% B  P, W, _' M0 z          ( ycor-of turtle b + y )1 J3 y. P( `2 s* a7 y& a% v
if (remainder who 5 = 2) [set c who
+ _$ A- I; o0 i  x                          set x ( 0 - Wid / 2 )
5 n- [9 J7 g! B& a+ B) y5 M( W                          set y (0 - Dep / 2 )  ]
6 ?' W) A. W+ X6 F: Y* Q6 p! w2 T! e" [                          set d int (c / 5) * 5
2 h$ G# d6 d8 s" H, q   setxy   ( xcor-of turtle d + x )+ x2 l& H$ A" J; u9 X
           (ycor-of turtle d + y ) 2 f8 \4 v* j! i% X
         
$ |0 r: l' V% w4 R2 k0 d7 u4 F7 X            
, A! ^( p0 u7 v2 \if (remainder who 5 = 3) [set k who
$ O/ X( B. a9 X) O8 s3 g                          set x( Wid / 2)  ! e3 D8 [% C+ V# k
                          set y (0 - Dep / 2 ) ]
% ~' g3 Y# o% X+ z4 v                          set f int (k / 5) * 5
. a- R+ g  [5 T9 O  setxy   ( xcor-of turtle f + x )
9 Z0 e6 O5 W* I           (ycor-of turtle f + y ) 4 {* r% v' F  i- _; @% w
           
) A6 a% s' O8 {; {- A  ?           2 q- {) S4 I6 w
if (remainder who 5 = 4) [set g who
2 @: a% ]8 i; X. K' J+ K                          set x Wid / 2 9 m* J# H6 ^; q4 y" X9 m$ k6 _
                          set y  Dep / 2 ]; }7 i/ _8 y" e
                          set h  int (g / 5) * 5
) ?4 D0 `* L0 s$ q  setxy   ( xcor-of turtle h + x )
  k' N  N. I# [! |           (ycor-of turtle h + y ) " i" S7 P) |( w2 Z
                          : j. j! \- B  z) @4 e
                          
$ [  m6 d8 c0 k( t8 `2 _                          ]* d2 N8 E! J1 G
end
" W5 l. k! m- Y; a' `' [/ k. R+ l6 v3 k1 p9 e
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,9 E- `& i% ~4 ~/ d
应该是
1 ?, m+ X8 {9 O  s, ?ask turtles [
& F, z  H+ \# g0 r' [; {if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
& g3 T% t, @2 }. R5 s" X. K/ c% B                          set y  Dep / 2 ( c( ]: O% l9 r: W6 \5 H
           set b  int (who / 5) * 5! o3 m8 S+ m- h* q' {) R/ V
    setxy ( xcor-of turtle b + x )4 v. C# t% ]: f9 f' ]
          ( ycor-of turtle b + y )]]2 K' k- m" y6 ^3 C( d1 e5 v5 b
end# i5 e3 q+ w: {$ F* C# b$ [& D3 W2 S
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-8 01:19 , Processed in 0.015452 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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