设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6322|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
) F0 B8 b9 e2 U7 R; `4 K
! Y0 l2 H: q- L( q; m但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。7 L% g2 f5 w. F* o, B$ S! Z
4 [3 l  F4 e3 H7 y% [
turtles-own [a b c d k f g h; ]) l2 Q/ x9 W$ a0 C* k) J- h
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
2 l" @/ C) ~% F1 Z. [$ u]
6 w, S: C# |% V7 }to new
2 x4 G8 H( j, O3 k, u5 a& o  ca
" y: W" B, x1 K" `* C  crt 5 * num_of_building
; b6 [7 |" r* Y) }0 E  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]/ Q- `* h- `2 y, n
  scatter     ;;keep center-turtle random positions
& [' E5 Y6 P# @  unit_plan   ;;make up the building plan( N, X: ^; U3 `
end
! o, Q' T6 r: H7 b9 gto scatter
- d0 g, n, y' I* j) Nask turtles with [remainder who 5 = 0]1 D! C0 b- g: t7 h+ ]/ p' j
[
: `- y  E# V& i% I) i, `set xcor xcor - 6 + random-float 15
: d" [) K4 K/ i2 `* Fset ycor ycor - 6 + random-float 156 b9 M( ?9 O! s3 r9 Q
]; ]5 n$ T7 u8 I+ O
end$ W  W: v0 C' L+ L+ j2 G2 a3 I
to unit_plan
" z6 k! L6 N0 n) B! b& b5 A# Pask turtles [
6 q) ~. B+ u3 A0 sif (remainder who 5 = 1) [set a who ) m' B3 o9 n0 e: }2 d
                          set x ( 0 - Wid / 2 )
% A0 Y0 ]1 Q6 n' f/ q                          set y  Dep / 2 ]& [0 C$ g# @$ r4 d  Q- Y" \( S
           set b  int (a / 5) * 5
$ q( n2 `+ i# I) A2 @    setxy ( xcor-of turtle b + x )
  d% w" O% X4 m- ^4 y          ( ycor-of turtle b + y )
6 Z) C' |" W: ~; [1 w) gif (remainder who 5 = 2) [set c who
- v) c5 X' k; L( g3 s( N- d                          set x ( 0 - Wid / 2 )
% A( l6 O& Q3 e! }& K6 u                          set y (0 - Dep / 2 )  ]
9 \4 @% w9 }( I7 V$ k- J" F: p                          set d int (c / 5) * 5
2 \+ P; f+ Q; Q9 P   setxy   ( xcor-of turtle d + x )
; e5 ~  l( j4 P7 M           (ycor-of turtle d + y )
/ G6 y( V6 ]9 `& ^          4 P6 w4 d8 [. k: V
            ' S& f# F6 B# I, l4 v
if (remainder who 5 = 3) [set k who
" t' R, T) z# R                          set x( Wid / 2)  
$ i5 e' ?' {" U% r8 k& P: G                          set y (0 - Dep / 2 ) ]9 p' }8 \) a2 I" }( V6 O
                          set f int (k / 5) * 5+ I1 z3 ~% n6 K' l
  setxy   ( xcor-of turtle f + x )3 |8 m  k8 r5 Y3 k9 F: i- ]4 p
           (ycor-of turtle f + y )
: e" E3 ^, S1 v           ' a, ]8 e, E' k: G8 b- M, U8 A
           ! w$ I% S3 o! H) Y7 v1 ~
if (remainder who 5 = 4) [set g who5 q7 Q' C. c$ @
                          set x Wid / 2
; P0 c0 U8 l% C1 T                          set y  Dep / 2 ]& T; [2 d: y9 y
                          set h  int (g / 5) * 5- G6 e  A9 H- {* L' j
  setxy   ( xcor-of turtle h + x )( e1 V( j- C8 M8 k4 Z
           (ycor-of turtle h + y ) $ b4 p( P% r3 c
                          
/ M0 f3 B+ x- `, F9 J% G                          
6 X8 A- M# V9 r; i                          ]
# Q2 U- C  T0 ^7 H9 A! g% e8 Vend, ~, C! X0 ]1 s
6 F  ~+ c' v/ B  n/ i! c# p8 o
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
0 v3 Q- ~7 I% S; a7 ~应该是! H9 m) F% ~. Q! X  f( I! `
ask turtles [% S- U0 |+ l, Q& k/ |4 s7 k
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) # U6 A1 Y" Q4 J8 w8 o9 |9 y
                          set y  Dep / 2 3 N# @( R3 R1 ~' ?9 ^4 x; b* W
           set b  int (who / 5) * 5
  C" _" i! e  t4 t% `- q: H    setxy ( xcor-of turtle b + x )
9 V2 `7 G1 R1 l5 E          ( ycor-of turtle b + y )]]
" N; U! g# i0 o% _1 _end
) E/ [, I6 u5 Z7 b之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-14 03:32 , Processed in 0.016410 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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