设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6806|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
1 [$ ]& H6 b; o( ]" Z7 K2 d7 c) i3 U/ B; R& Y
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。" _# A/ B& l) u$ m3 b2 {, b

0 u. z8 P" |5 V1 w+ @) Tturtles-own [a b c d k f g h( k5 b2 b4 R' t1 a4 B7 Q& H* r& `
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle & n1 y+ f: G/ S  O
]
& |& R! A  k! F* R7 kto new
* i% f3 ]8 u6 P" `  s* I7 g  ca
7 F0 K- p0 b; N  crt 5 * num_of_building# `7 f7 `& V; K% A% v8 W
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
" ]+ F8 E6 ]$ S  scatter     ;;keep center-turtle random positions
% H' z4 \  l3 i- F" X  unit_plan   ;;make up the building plan; p: N& J3 j: `8 S5 F6 q, T3 f
end& @. ~: m( }. T5 R8 |* H3 V
to scatter
) p6 ^! b0 }. ~: Iask turtles with [remainder who 5 = 0]
& Y5 A2 o1 X/ F# U$ r[8 `3 w% E0 f  J6 ?+ Q8 w
set xcor xcor - 6 + random-float 15+ g) u% ~/ y9 i
set ycor ycor - 6 + random-float 15
/ T7 |: I* ?5 ?* k6 K]
* P" c5 S) c  X5 O# T( I% W! Uend
* m7 ?; i  Q, D, [5 jto unit_plan $ n( P+ ]8 z, O
ask turtles [
" x8 k; l1 V$ E5 `2 uif (remainder who 5 = 1) [set a who 0 W* S( u- ]4 x+ j
                          set x ( 0 - Wid / 2 ) 1 b- ]# `9 t4 w! B
                          set y  Dep / 2 ]: u  p9 N8 K9 D$ m8 e3 H* ]
           set b  int (a / 5) * 5. Q; N; l$ g4 ~# }
    setxy ( xcor-of turtle b + x )
( I7 C; r9 P9 k4 r7 j$ r3 i          ( ycor-of turtle b + y )
. r  B2 d0 L8 Lif (remainder who 5 = 2) [set c who
6 s8 r* t8 V  F                          set x ( 0 - Wid / 2 )
0 q5 ^4 _, j0 H7 u, E9 r                          set y (0 - Dep / 2 )  ]
& U2 J' e1 s0 ~, w# ^6 {                          set d int (c / 5) * 5
1 I/ L9 `( K. F7 r" m   setxy   ( xcor-of turtle d + x )/ [2 s. x, x# ~0 i1 Q
           (ycor-of turtle d + y )
9 k% R+ O5 Z1 ]2 B) w         
/ ]# N& Z7 [- f$ \! ]            
+ p% o. U: u& a$ uif (remainder who 5 = 3) [set k who( ~7 U/ Y- m  r' n
                          set x( Wid / 2)  
* a+ d8 J7 K/ q6 w$ `                          set y (0 - Dep / 2 ) ]
& }* q2 U) I: j. F7 T                          set f int (k / 5) * 5
1 }0 M' r" W3 `  setxy   ( xcor-of turtle f + x )
# @& g! r- M8 b1 ^4 x2 X% T           (ycor-of turtle f + y ) - z% p9 A+ K4 o+ K
           
/ U7 t4 z& A0 n  X5 E& a7 Z           ' T, i, [5 S+ K$ T7 L
if (remainder who 5 = 4) [set g who  r0 t/ h1 L; ^# j
                          set x Wid / 2
, M0 M9 j- ~+ @                          set y  Dep / 2 ]
% f* @- V& Y/ w" }                          set h  int (g / 5) * 5
/ b. w9 G/ b6 q. q4 C3 r* {% K) T! y8 P  setxy   ( xcor-of turtle h + x )
3 R( j& k8 P/ j- _& h" z3 _# j           (ycor-of turtle h + y ) 1 c" F3 j! }2 ]! D# R2 b
                          * }" s, l: \! m! p- L1 P, X
                          
; y" f: l3 ?' @" c( N7 E                          ]
8 Y4 C4 @) ~5 mend* e* Y7 }5 [9 n3 o6 U& I
* g8 x5 s, z; E8 d' E
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,* V) b3 b9 c  i. g) v! A# U, f8 P
应该是+ i, z; b+ B+ y8 i7 X& U
ask turtles [
$ I7 j0 l, i, r: k. e( A& C# \4 h1 nif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
1 t: D/ f* y* a/ n, w                          set y  Dep / 2
, [6 r9 m) u8 a6 r! T6 f+ B           set b  int (who / 5) * 5& I- z! p, q. u
    setxy ( xcor-of turtle b + x )+ T' q7 ]% n, e& D! |+ L; r
          ( ycor-of turtle b + y )]]
1 h" d& n; p* d' W3 W0 {% Cend8 [4 {9 A* P) D4 h+ Q% {: C' ]
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-25 05:15 , Processed in 0.020618 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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