设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7942|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。; d) L/ v, V3 I" V) {  b
* E0 k# `7 c' J. X6 B( g
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。& K2 {6 ~) x+ ~- B
0 d8 q( P1 @& l$ U
turtles-own [a b c d k f g h
. |7 v: S# m% i: h) g+ p  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
) u) W- F8 `, u) n]
. ^$ }2 @7 b: B- Z7 t- Qto new
/ t- }5 O) }2 {  ca
' V% Y% B& ]0 `8 p% b/ l! {3 V  crt 5 * num_of_building# |8 b6 R& [" W- n
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
5 f$ l4 ^: F; T' F  scatter     ;;keep center-turtle random positions ! p9 F1 p. }$ H# Z- U
  unit_plan   ;;make up the building plan
3 [! S7 c3 h1 v$ Gend
/ t. S5 L6 _  |0 H: Y: Q* Q& b% Qto scatter# \  U% q7 u. c1 l$ Z& s6 ?; k3 w
ask turtles with [remainder who 5 = 0]$ [: s2 f6 b2 C$ r
[
2 P) m" H" J$ W  hset xcor xcor - 6 + random-float 15
, I+ o! s; n# d) m- ~& B3 H4 Bset ycor ycor - 6 + random-float 15
8 z) ?/ @$ R4 L1 y5 q. e]
- ^+ }$ ^3 T7 K5 Hend0 T0 L# d5 c* |2 L. Z* I5 Y% ^; _
to unit_plan
/ Q2 [" P; `  ?3 E) a& F. Wask turtles [
, ^3 X$ m3 _- @7 I6 z0 u' Uif (remainder who 5 = 1) [set a who
% i1 G( D  V1 N+ v  `4 ^# p                          set x ( 0 - Wid / 2 ) ' p1 Z7 T0 l8 V, ]9 E9 ~+ ~
                          set y  Dep / 2 ]
7 r8 t: ]# c- b% l' Y8 F# E/ r           set b  int (a / 5) * 5: D9 W; W- {! A" g( A2 ]
    setxy ( xcor-of turtle b + x ): A. B0 O0 U# ?1 j* e
          ( ycor-of turtle b + y )6 K) V8 X4 j' ]& m9 c: T
if (remainder who 5 = 2) [set c who
0 r- K" G; S* u7 o- t                          set x ( 0 - Wid / 2 )
: G, N3 d* ]2 F9 ?8 f                          set y (0 - Dep / 2 )  ]
4 o) X* J3 }" M/ E1 |" r                          set d int (c / 5) * 5
! ^( E# c# \) F2 W9 A# A7 s   setxy   ( xcor-of turtle d + x )
9 I: p1 m6 H0 C           (ycor-of turtle d + y )
% v# E# ?1 z* d- i, s$ q4 R6 o         
( @! X/ h" Z- L4 i5 v            : |' _) A3 L1 b% ~4 L
if (remainder who 5 = 3) [set k who. o4 w6 }5 j% |5 h' j
                          set x( Wid / 2)  
# C7 Z  i& o7 O1 Z0 \                          set y (0 - Dep / 2 ) ]" d( Q2 x# `% l8 Z2 h) E: u2 ^% f
                          set f int (k / 5) * 5# m9 X& P! M8 Q' l, l5 S
  setxy   ( xcor-of turtle f + x )
6 q. d( E3 U2 l$ w) `/ c           (ycor-of turtle f + y ) # v$ d; w. Z" M7 H- R2 }: E, d
           
0 l" J$ Q' K0 _" r6 O+ g* j) E           - v' T. e- a9 y: V) n
if (remainder who 5 = 4) [set g who7 n" Q( ~7 Y1 E. V
                          set x Wid / 2 ; l/ K8 z, A- X9 m6 Z0 K, u
                          set y  Dep / 2 ]
, Y, X# J( R0 Y! b1 u+ Q                          set h  int (g / 5) * 5! X. {+ q; O1 B
  setxy   ( xcor-of turtle h + x )6 j7 ?! |% A" \7 ?1 B) w
           (ycor-of turtle h + y ) & r! A; r. y5 D1 I7 S0 C
                          % u( T" A+ u; \8 ]
                          
5 l  o# T* w4 o+ M! g                          ]
) v% T7 \) W! u" n0 m, n8 n, D- h, Nend8 J4 }! ^! f+ x  u4 t
& P: l/ r! o: N' t& Q1 z9 T
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
' f: G! D5 {* ]应该是2 ~; _/ e# M$ M: X
ask turtles [& p% X& T! Q5 E$ k# Q$ e5 t+ A; ~
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
8 @& v: U3 w7 g! a. n4 |3 G% e0 S                          set y  Dep / 2
" y+ u& C; L9 O! M* F; I6 j) T           set b  int (who / 5) * 54 T+ n6 u5 _% w2 G2 r
    setxy ( xcor-of turtle b + x )
9 X  @6 ~; V" B4 N          ( ycor-of turtle b + y )]]
$ P. A0 f9 X9 }+ n9 ~end: ?& l# I6 w  l: b
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-20 12:29 , Processed in 0.016720 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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