设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7878|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
1 K  E. H; ^* G. l4 {! w; k: {- K# I# @6 F! Z. X
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。) x5 J8 t1 `- ?
0 t' j3 Q' k6 n3 N
turtles-own [a b c d k f g h
/ n1 [% R2 `3 J3 D1 J2 [  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
: c6 n( ]. s$ U; k3 p! T/ C]% m) F( E+ L9 q: P( p6 o
to new" S0 N; F0 I& I; L3 q
  ca
  T4 o6 n. F6 y3 w' e% ]$ D! ^  crt 5 * num_of_building
0 n3 ]8 k7 N' g: s; z& O- X% ^9 t  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
3 _: [" T5 j7 m' x% ]  scatter     ;;keep center-turtle random positions + Z- u" B( v9 C% J' ^; V, ~8 z
  unit_plan   ;;make up the building plan0 L% h2 I" n  p( `' C/ z# T  n$ D! ?
end
4 C, g' ^! Z: s+ Q* F. Hto scatter( `0 }+ z& G5 q: j
ask turtles with [remainder who 5 = 0]  v! c; K1 l; K  t
[9 t  m9 N1 v; j' R
set xcor xcor - 6 + random-float 150 U% ^1 L4 @( e, Z2 l2 E# _0 _
set ycor ycor - 6 + random-float 151 o2 _) b8 p9 v8 q  y0 m
]. I/ o" v9 B$ i$ j
end7 B: O) _) b9 i- F( n2 j
to unit_plan
4 K, X- k% M3 ]# u5 Iask turtles [
) v0 U, }; p! q- ?( F# yif (remainder who 5 = 1) [set a who 0 S$ i& r3 W( w/ U6 L
                          set x ( 0 - Wid / 2 )
+ i: h3 y9 q( l0 M5 o% b                          set y  Dep / 2 ]
* c4 s' e0 B- }$ G; B, \+ y$ c           set b  int (a / 5) * 5( ~6 s: X3 j: {; N
    setxy ( xcor-of turtle b + x )
* m2 ~9 `3 [! N          ( ycor-of turtle b + y )
% k3 k3 g4 N1 m) H- {( j- Gif (remainder who 5 = 2) [set c who- \3 i+ D/ l+ f  D
                          set x ( 0 - Wid / 2 )
6 b4 Q- ~: F/ D5 K" o$ O                          set y (0 - Dep / 2 )  ]# d- T% L! `, I" \7 z% z
                          set d int (c / 5) * 5) }; Y* o' [7 i7 J! Z5 X/ Y
   setxy   ( xcor-of turtle d + x )3 V# V1 s* T% K: r# a
           (ycor-of turtle d + y )
+ a- S4 Y' H0 z2 A& C         
1 Y/ r$ M9 k% W' R* A            5 ^( P- k2 T0 g& @
if (remainder who 5 = 3) [set k who
# x: b$ x$ O% \! g1 f+ L                          set x( Wid / 2)  
$ N% k% }- r  J8 D9 t4 w                          set y (0 - Dep / 2 ) ]( G: i. N+ T' \$ z( M
                          set f int (k / 5) * 5* ~/ Z' D. A! F' ]! Q1 [
  setxy   ( xcor-of turtle f + x )
$ K  x; E  g4 C8 y; y- O; P; H; w           (ycor-of turtle f + y )
/ M( o7 b% |4 S" S2 E           
$ H. w; E" u( w3 Q. r. Y& ^           
& E, V8 ]: L' r7 B# }& o) ]if (remainder who 5 = 4) [set g who
7 |9 |6 X3 g" ~9 s  R                          set x Wid / 2   Q% r' J, I3 o$ i8 [/ s' Y! P
                          set y  Dep / 2 ]$ r4 a/ P* X$ x5 r, u1 g& _
                          set h  int (g / 5) * 5
+ S3 P; _4 ]. s& }: I  setxy   ( xcor-of turtle h + x )
! F/ Y( ?4 K" Y6 W/ u           (ycor-of turtle h + y )
& _1 D; ~: h' |$ ^% l                          
0 o) }+ D/ @1 N2 N( {$ x' [: U) N                          $ f' o( F) L! ~& D
                          ]
% t. d0 M7 |$ b# ~+ |3 t- Dend" Z# j, r( k4 E9 Y, E5 @) M
- a( I5 k; d+ _; r! Z" z
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,( R/ g9 F; f0 s+ _9 l
应该是
; t0 ^* _/ k3 H, I8 lask turtles [; r. q- c6 R8 m/ ^7 ]3 H+ b
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) , X( @0 n" ?  X" p. C" o
                          set y  Dep / 2 - e7 @0 w" ]' x# g% j* |% f
           set b  int (who / 5) * 5
% Q+ c4 h% R3 A7 l/ i6 B    setxy ( xcor-of turtle b + x )
. p: w3 i+ S' _& o' h          ( ycor-of turtle b + y )]]
# ]" r  o- I1 c2 F2 J" F9 @2 a4 Lend, V% x- b% G- n! N# ^+ @" [  Z
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-14 05:01 , Processed in 0.026943 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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