设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7909|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。' \( |% ^& Z/ L

; X2 e& k5 c* J但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
; u8 u+ d- I% |% F* U
6 b7 D  r7 R7 K5 G5 ?1 tturtles-own [a b c d k f g h& z6 j* x* v5 ], d% x/ m( m
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
, o) v$ X+ i3 V]( |* \0 c7 D. Y$ N- d+ u
to new$ o* N1 u' d+ }
  ca
: h( ?8 y- l' H1 z% ~2 h  U. h" L& B4 e  crt 5 * num_of_building
' O& }' P! Y0 R8 b3 \$ s7 l  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]# l# M0 I* G* \! z
  scatter     ;;keep center-turtle random positions * ^# K& i1 F: L7 o. R
  unit_plan   ;;make up the building plan2 }( V, b2 Y; V! t5 n" l
end
5 l3 g0 T$ m0 P7 ato scatter: m* y8 h; H! s. d
ask turtles with [remainder who 5 = 0]5 O% W2 [7 ?$ ?7 S7 i2 B! I
[
# v- V. i' B# T. @( @set xcor xcor - 6 + random-float 15! K; ^$ A6 L$ `: O% y$ m" Y( C
set ycor ycor - 6 + random-float 15
* a# ?6 a4 \" k# w- g1 Q- y]' d; s  P7 g# r4 T' g9 H# C+ V9 T- g
end5 t  _9 Q4 z+ v; o8 ]4 b
to unit_plan
% ?1 ]% c7 @0 w& Z3 F2 jask turtles [4 L0 I- c# _$ B0 Z
if (remainder who 5 = 1) [set a who ( \2 u: p9 ~9 r  {* n( Z
                          set x ( 0 - Wid / 2 ) 2 k& T% |( k% D0 p
                          set y  Dep / 2 ]
) K7 i" R* K- ?7 k           set b  int (a / 5) * 5
1 t) t4 w" I+ v1 N    setxy ( xcor-of turtle b + x )3 w# z3 d% Y  n: P/ j/ r' b
          ( ycor-of turtle b + y )! H3 T# m) R3 ^/ \* n( B3 t
if (remainder who 5 = 2) [set c who
1 f+ w9 ^5 n% t' s# _, _                          set x ( 0 - Wid / 2 )
$ g$ [) `' z1 c+ S* Y1 G                          set y (0 - Dep / 2 )  ]# X: X6 l* |( C0 K0 G; X: }$ n
                          set d int (c / 5) * 5
3 v9 f3 w( ~& j, ]   setxy   ( xcor-of turtle d + x ): Y$ r9 e% l5 C  ?0 b6 [: y! Y  s
           (ycor-of turtle d + y ) # @- k2 e  V6 i2 A+ W) v
         
3 L  i' b- R/ e9 x8 N            
) N. i; s6 d& a- {* A" x2 m; sif (remainder who 5 = 3) [set k who
3 z& r4 x2 W/ Z! V  ?" i  E$ B                          set x( Wid / 2)  0 i% }/ n9 n8 M* y0 `& G9 l( v
                          set y (0 - Dep / 2 ) ]3 N$ C6 y/ D8 |' X
                          set f int (k / 5) * 58 K0 }2 L+ O+ }- ?& o
  setxy   ( xcor-of turtle f + x )) E0 y1 e  p5 ]
           (ycor-of turtle f + y )
# r  N1 E3 }. B, I$ ^           
  ]" A1 a1 Z1 D" q0 P( X2 V' D           
& M6 L  @3 L3 Qif (remainder who 5 = 4) [set g who
' w& A" q# D8 r                          set x Wid / 2
  U- ]0 u7 y, y$ F/ [9 c8 O: p  y                          set y  Dep / 2 ]1 O- c: {8 P  Y
                          set h  int (g / 5) * 5
3 m; w' U5 k1 S; G% b  setxy   ( xcor-of turtle h + x )
) _0 ?$ G4 d* A. F8 J1 r           (ycor-of turtle h + y )
- u* X7 Y# A% P3 U( X' E( m                          
/ f3 ^( M- U6 `. o% b# B9 |                          
+ [0 u! i3 `- H( w4 ]" r& O6 W                          ]
* f0 I, y, r# a" ]5 V9 hend# j' P7 r+ h& N$ Z! ]8 S+ ?

* X' r" s) P1 Y[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
/ c, J8 z" R) o4 M应该是( |1 u, b# I2 p8 [5 O
ask turtles [$ `: ^, A$ ~. Q7 n" l4 ]
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
  S5 ~" I& [" P8 [) V                          set y  Dep / 2 : J( a  g4 b, k/ B* b4 ^+ Z- S
           set b  int (who / 5) * 5
: V6 n: q8 M+ Z( e    setxy ( xcor-of turtle b + x )+ p4 q' j$ h& v; Z! {, t% n) [
          ( ycor-of turtle b + y )]]
* \" c8 c9 L* p9 _$ l% B( g0 @, _end
5 x. b8 `* j/ Z之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-16 21:18 , Processed in 0.014689 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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