设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8143|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
  M1 [0 \* X: h4 Y" ?& [! ?: F& M. Q) z- h4 F
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
5 J  H- a+ ]: ]2 O
5 I, ^7 x& s% Y- I3 @turtles-own [a b c d k f g h* u/ x( o; o9 \  s8 A# l! ?  W% ~) q
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
/ l) t$ r- T6 m: i6 W7 ?]
: Y' _3 S7 Y$ \" Q2 _5 Ito new
' R" A5 I! n5 \$ e: E5 B  ca7 A$ D, A1 D) _7 K" d' \" a% g
  crt 5 * num_of_building
9 G1 S( @6 {8 |( P0 m1 Y  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]5 d8 W$ V( a. c( y$ L  K
  scatter     ;;keep center-turtle random positions
; Y, w( z1 X) T: O  unit_plan   ;;make up the building plan2 Y! M: K1 t* k& A7 R$ d
end
1 W8 [$ W9 U7 e/ E% _: Uto scatter
# p3 Q1 i6 A2 k+ n6 r6 o# d( lask turtles with [remainder who 5 = 0]) T& F4 e, b$ ?4 V6 }* [5 S& D
[) q) E2 ^% v* W
set xcor xcor - 6 + random-float 151 r* R5 K# |) J4 r7 b
set ycor ycor - 6 + random-float 15+ y1 L* z7 o5 k$ a' s* K8 q$ o2 e
]8 O! f; X7 |( k* L
end
4 ~( h7 B6 e6 `to unit_plan , ]2 z2 E; R- T3 L
ask turtles [3 [; }, {0 v0 e% Q, |% p5 |& z
if (remainder who 5 = 1) [set a who 7 z0 d5 r4 P% ]  s
                          set x ( 0 - Wid / 2 ) 5 E: e6 `; C! z  C" ?
                          set y  Dep / 2 ]
5 `& R  m2 I. C           set b  int (a / 5) * 5
# m* B. x4 ^7 I    setxy ( xcor-of turtle b + x )
$ o. J' Y' z2 L1 M          ( ycor-of turtle b + y )# U- W4 N) z, r3 K" O  q8 n% @' P
if (remainder who 5 = 2) [set c who
" U, D! c' n' u3 n6 g' k0 c                          set x ( 0 - Wid / 2 ) . a$ e6 t0 O) C# \6 t
                          set y (0 - Dep / 2 )  ]
- V' U0 V/ N! V                          set d int (c / 5) * 5
0 C; r) E: j# z9 j   setxy   ( xcor-of turtle d + x )
% {/ f+ K  V) F9 |3 s           (ycor-of turtle d + y ) % f- x" ~( _" ?4 B) ]' N
          7 o) a3 l  A" N% v* b7 r; {
            ' m7 l& M. z' a& ^; H5 @% g# O5 _
if (remainder who 5 = 3) [set k who1 v3 d# _! a' D" r; M8 J6 a% |
                          set x( Wid / 2)  
# M0 F0 s* [1 }7 f7 e* _                          set y (0 - Dep / 2 ) ]( z$ W" A/ w& Z) l% G. S
                          set f int (k / 5) * 5& ~/ p* r: X- y& s' I- R
  setxy   ( xcor-of turtle f + x ). m, G( y3 u# D
           (ycor-of turtle f + y )
3 v; t' w7 [" F* _           
: R( S& F0 e0 e           
" `: t! c. a! Z9 ]if (remainder who 5 = 4) [set g who
5 @4 G# j( i' s- s. W5 X                          set x Wid / 2
/ g! x! C! t7 V0 E3 r6 n                          set y  Dep / 2 ]
% C+ @' b& K. [% Q                          set h  int (g / 5) * 53 Z3 O9 ~8 [4 n: D2 D: }! n* ^
  setxy   ( xcor-of turtle h + x )% H& \& v% {% d, G6 Y
           (ycor-of turtle h + y ) . k% _5 O' ]" w
                          7 o) M' @' T3 q6 k2 y* j( y
                          
( {) u) o, o( a7 w2 U; D                          ]3 m( ]9 C+ b/ n) M7 u3 P+ h, _
end' V/ l1 c- L" d3 m

- `" X, L7 [+ {[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,' f; R2 g; [, M* ?
应该是
! g- V' E% p# I: @ask turtles [
3 n5 S6 V1 ]+ e9 O" D0 U3 Oif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 9 g' c$ D+ E3 y: q5 c- P
                          set y  Dep / 2
/ F4 M$ l% r1 s: u/ _4 J           set b  int (who / 5) * 5
" z0 k# ~, a1 I' H    setxy ( xcor-of turtle b + x ): Y* V( R$ m% {4 K. d3 x% W: z* B
          ( ycor-of turtle b + y )]]
4 h3 `. P/ |4 tend. J1 k# p. O8 Z  G
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-11 05:26 , Processed in 0.017068 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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