设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9083|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
$ v- o5 J$ b% Q( s9 Z% X; \/ R2 p6 b( o7 Y* `: Z5 v8 Q' b
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。7 q) H6 v. a! B3 J4 q. z6 Z; u
' V0 b5 M- I1 \; r- y$ g
turtles-own [a b c d k f g h; Y. v# Z7 z' T- O, X: d
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
! c% Q9 ~. d5 e# c+ @]
* `+ B9 g. k1 F6 s. Oto new
5 u. g' f3 ?; T! Z  ca
% A8 X. p, V2 u' P% s% p% ?  crt 5 * num_of_building
  R- H" D$ j/ D: |  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]2 l/ ?' H) y/ @* l* a
  scatter     ;;keep center-turtle random positions + g6 q; d, u$ {& ~
  unit_plan   ;;make up the building plan
. M4 l& m: |: ~8 ?2 H0 F" q# `( Vend  n! M7 Y* e4 a. B# r
to scatter6 x# z6 Q& F& o5 q
ask turtles with [remainder who 5 = 0]
1 H; @/ e7 L0 r& g[$ N$ S) ]% W4 A
set xcor xcor - 6 + random-float 15+ y# ]( O6 ~" [/ s- T; y! K) p
set ycor ycor - 6 + random-float 15' G  Q/ |9 w( I$ u6 D
]* Q" ]; f3 t) U1 w
end/ P0 Q. U% A, ~! k$ F0 ~' t
to unit_plan
6 s: o- X5 q$ ?' x% P$ fask turtles [
( f/ b( J( `( C% w7 j$ cif (remainder who 5 = 1) [set a who $ k0 B9 C  G0 `2 R
                          set x ( 0 - Wid / 2 )
& {# x+ u/ R8 L# }" ^                          set y  Dep / 2 ]
7 U+ `8 ]2 b, s* X  ^           set b  int (a / 5) * 5
" q- x5 P1 S# p" |    setxy ( xcor-of turtle b + x )1 y$ h$ @2 p1 _, u1 ?- A$ L
          ( ycor-of turtle b + y )7 U7 O* Q1 l! v% e5 B  P, l
if (remainder who 5 = 2) [set c who5 Q. N7 L/ ?; ]( @9 U( g: y' N
                          set x ( 0 - Wid / 2 ) ; w. ]& E* z0 E8 z
                          set y (0 - Dep / 2 )  ]+ B  O/ @) O* S5 g5 z+ O
                          set d int (c / 5) * 5
8 M  t% t: t# W% \0 X# A   setxy   ( xcor-of turtle d + x )
* ^; V( e& J0 {: W           (ycor-of turtle d + y ) & S6 }0 N% Z$ S* B1 |$ [" U
         
& G# M& d8 [9 Z8 F8 f            $ s. a) R3 L9 I/ k
if (remainder who 5 = 3) [set k who
) K, s" Y; P  a; b4 A$ S& i* l                          set x( Wid / 2)    p% L" p) r# Y  P! w/ F1 s7 Z
                          set y (0 - Dep / 2 ) ]
( t6 V' D* K/ G2 z3 U7 i2 b                          set f int (k / 5) * 5
9 ?  O5 ^5 s- A! _" R  setxy   ( xcor-of turtle f + x )9 ^  K  V. D1 n% d0 G/ ^
           (ycor-of turtle f + y )
2 h3 G! l8 _5 K, Y# V- Y           
" p2 }  D, l! I( h( ^; R           & B& x) ~! n/ {. Z* ~1 q
if (remainder who 5 = 4) [set g who# x5 |$ m* I0 w
                          set x Wid / 2 3 `$ @* k1 {6 D5 h8 k
                          set y  Dep / 2 ]9 q0 ^/ ~, }) W# `
                          set h  int (g / 5) * 5
; j0 u# q+ F( \1 _9 p0 V# \+ E; s  setxy   ( xcor-of turtle h + x ). N+ Z# D) x, g0 ]; e! H( K
           (ycor-of turtle h + y )
( R. ?6 k* \% J% n  u8 G; r3 H                          , H+ k7 f/ T' u" x1 i" {
                          8 Z7 b0 A/ o- k* A( O) c$ |
                          ]. D& e6 X: z& A$ W8 n/ l
end
+ M- J" R$ a# D+ v9 M1 t
' Q/ [4 b5 ^, d9 ?  V' @[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,  @5 g' X" N* R, f
应该是5 s- _8 ?! k( _' F5 y
ask turtles [/ T# P- ~+ l! [# B
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
: M+ q) D* u9 M' n6 n                          set y  Dep / 2 6 U  K. b9 _, J- H5 H3 a
           set b  int (who / 5) * 5+ k& r  ~# o, K' @: Q' W4 f+ O
    setxy ( xcor-of turtle b + x )1 E+ ?3 o4 K& G# R6 F0 l' [/ D
          ( ycor-of turtle b + y )]]
' @" D9 a1 o* t/ u) ?! p# oend4 Z4 Q1 r3 i& H  }) b+ w
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-15 14:19 , Processed in 0.017626 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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