设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7414|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。2 T# Q; G. _  g

" H8 F4 y  \% [. R* U6 |但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。! E, h5 ?7 H) }9 ]- R( k, d
# \. |, L6 W! S$ F8 G; `
turtles-own [a b c d k f g h$ u* x9 Y  _$ q$ Y
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 2 @2 P1 F+ N+ V3 b
]
2 d4 z* }& E: q0 I  h. Yto new" F. x4 @1 W0 k; q
  ca
% v) V3 ?% d2 l8 o7 L+ h  crt 5 * num_of_building
! }0 d& T* S7 Y! D- D- y/ t  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]7 y6 @; O: ?$ Q1 |& r. x3 u% X
  scatter     ;;keep center-turtle random positions / \9 X* ]7 B, _' y- R0 M& O
  unit_plan   ;;make up the building plan
, v- x- y6 U0 h+ mend
9 p! V8 J/ y+ ~" `to scatter' ^, Y7 `9 v1 n* U$ X6 O
ask turtles with [remainder who 5 = 0]( h# F3 m+ {2 t. B( o
[! A: `" Z* g7 z6 E7 f
set xcor xcor - 6 + random-float 152 {$ |7 x8 @  r0 R
set ycor ycor - 6 + random-float 153 a3 ~/ Y& E$ ^7 Q) l
]$ ~+ z, I3 `# J) ^  d1 M
end
5 L$ `4 x7 S5 A  q( X* xto unit_plan
- X, ~4 Y$ b- S& Q$ U- X& j# _. Lask turtles [# N; R' J9 I, a9 g( z$ l0 Q+ ^
if (remainder who 5 = 1) [set a who & V1 ]5 b6 o/ @( t9 ~/ S2 k2 j
                          set x ( 0 - Wid / 2 ) ! Y1 t6 R% M% u
                          set y  Dep / 2 ]% I2 ?. e4 \7 j# E6 P
           set b  int (a / 5) * 5  y/ Y$ {4 |7 v0 i: d1 t: w4 q
    setxy ( xcor-of turtle b + x )
1 ]* ~3 G& ]# B% N          ( ycor-of turtle b + y )
: \. v% Q/ s4 I1 q5 v0 \* G7 bif (remainder who 5 = 2) [set c who! S7 \& i/ {7 N
                          set x ( 0 - Wid / 2 ) 3 d  d' ~/ y5 }
                          set y (0 - Dep / 2 )  ]7 v2 e* T% u; H6 U% S* ^5 d
                          set d int (c / 5) * 5( ]6 w8 l6 L7 \: M+ l% q  D
   setxy   ( xcor-of turtle d + x )
7 R1 a) f/ U4 a3 R. e           (ycor-of turtle d + y )
/ l. G. y. |! |& C4 W         
4 M& d% I2 a6 I& r5 X6 b% p            
# @3 X) _8 k7 {7 P4 j- Oif (remainder who 5 = 3) [set k who8 o6 ?2 ?& i  M, C, @
                          set x( Wid / 2)  
; F& Q. T8 R7 Y, R                          set y (0 - Dep / 2 ) ]- m; }2 ?4 Z' H; H7 o: w0 j
                          set f int (k / 5) * 53 T% J  r/ x3 J1 K5 a+ K, N" @
  setxy   ( xcor-of turtle f + x )
- N) y, [7 m5 `* ~; X$ \9 [           (ycor-of turtle f + y )
  l, q0 u+ S9 K- G, K: E/ ?. f3 l           ) u8 r3 P+ A8 A8 O1 S" j, G3 c
           0 {3 I" D# d. [9 C. j) S/ ]
if (remainder who 5 = 4) [set g who! o+ R2 n2 l9 K, A4 [
                          set x Wid / 2 7 k* x3 r1 u) T2 v+ Y
                          set y  Dep / 2 ]! a4 p+ L  e, s
                          set h  int (g / 5) * 5
& Y6 J) Q/ K" o- ~: N2 W  setxy   ( xcor-of turtle h + x )
9 y: d% \* j& ?4 x0 [$ k           (ycor-of turtle h + y )
7 [! M8 A9 S5 D$ j7 S, c: r                          8 q5 i# L7 S" B! u# G
                          : C# k% ^6 Q2 r. I  v! ^2 c
                          ]% M5 @7 }/ e( ?6 w5 ~
end" K- K  Z8 ^, M3 L* d
, v8 C: l/ K& ]% T& d0 g8 V
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,2 e% q  K' j# S: @: t+ z" y- [) W
应该是
! s8 T* I: H$ I% `ask turtles [
. u  M  a9 s2 t! Gif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
2 z" F! a, W5 H* {                          set y  Dep / 2 / B6 @- [" a1 a- }
           set b  int (who / 5) * 5: I7 @, J4 e5 Q, @9 b8 x& \& w
    setxy ( xcor-of turtle b + x )& n6 F5 f3 `0 J* U
          ( ycor-of turtle b + y )]]
1 }$ v$ A5 x$ c! v( j# u/ \9 e+ Wend4 u2 X+ q' Z; w5 ~) K
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-9 10:46 , Processed in 0.024926 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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