设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8348|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。# M0 g, A$ @5 C; U" ?
' O( q# ?/ R. `" j, a
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
( \* \# N( O; ]- Z( \6 r1 ?6 X9 U6 z- I9 U5 W5 a! a4 T+ D4 a4 N
turtles-own [a b c d k f g h+ f& z  M7 x0 J( r% M  |- w
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ( g# G7 V% A" h/ }0 r
]
. A* R6 o/ v, H* A4 c: ~8 eto new0 ]/ ^0 w5 W" @
  ca$ \5 W  p  E2 ^; j5 A! q: a) n
  crt 5 * num_of_building, p+ d0 j2 e7 n6 N( u/ p
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
7 E7 C, P9 A  ^$ Q- r+ K  scatter     ;;keep center-turtle random positions + L# q" `9 o2 Q$ g
  unit_plan   ;;make up the building plan
, B2 V$ T/ U5 ?" H4 ~end
2 n8 N( o8 b2 X6 o# o" ~to scatter
. r* r; v8 Z, `" h- q- xask turtles with [remainder who 5 = 0]
# }- D7 r( c+ k% G' M[% p: O; Y1 S$ _! A; j
set xcor xcor - 6 + random-float 15
5 {+ c4 J% p3 E9 O; kset ycor ycor - 6 + random-float 15
* J/ [& x" Y1 C. P]
0 {+ t9 w9 o- t; a% i& @! Bend
3 w: Z+ u3 r3 Q+ {$ Q' m; Pto unit_plan
/ X4 W8 W" _3 H( sask turtles [4 q1 r: b7 N2 H' I6 H. W/ L; C
if (remainder who 5 = 1) [set a who
- d1 i9 q1 ~" _                          set x ( 0 - Wid / 2 )
  A" V. x) s/ R+ ?3 }                          set y  Dep / 2 ]
( X# t! H0 r: g$ e           set b  int (a / 5) * 5
  P, e2 ^* O# I) M; D+ F    setxy ( xcor-of turtle b + x )/ [$ \1 K, T* V
          ( ycor-of turtle b + y )
1 E# ^& T1 k  q8 n) r9 n8 Z2 E7 T6 L) {if (remainder who 5 = 2) [set c who
9 r* Q2 v6 c* {* s9 p( l' g. ?                          set x ( 0 - Wid / 2 )
7 X% }- [" ^& @! s# g; a                          set y (0 - Dep / 2 )  ]+ Z! Q1 o) C+ s/ `2 b
                          set d int (c / 5) * 51 l0 ~4 B9 A5 A
   setxy   ( xcor-of turtle d + x )3 k: U2 u& @3 K+ ?0 [
           (ycor-of turtle d + y ) 3 I. j6 _1 F% L5 Q$ R* C
            W3 x5 R( F6 i3 j
            
) ^: B, H: ^. r* r4 iif (remainder who 5 = 3) [set k who
. {" e( t1 M0 q; g% X4 A                          set x( Wid / 2)  ( i3 ^+ z* F+ V6 v, }; h  Y- F" W
                          set y (0 - Dep / 2 ) ]
. {$ F+ l/ Z9 s                          set f int (k / 5) * 5
* r2 `; j% r/ F6 `. N  setxy   ( xcor-of turtle f + x )
  s( I6 S6 z+ v5 P" ?$ k           (ycor-of turtle f + y )
; D- z  Z, j8 |$ r, a: v           
" U2 o1 _! f8 }4 z  B7 z4 c+ P( M  w           : o9 C# c" f& z. s: b3 q2 J
if (remainder who 5 = 4) [set g who" t/ w9 q6 m* m: ]
                          set x Wid / 2
! U8 E  [* e/ v- }; t4 G8 T                          set y  Dep / 2 ]
5 K5 ?) \( O% y3 v2 L                          set h  int (g / 5) * 5% n8 Q9 Q  j; v5 H; j6 v9 ?% z
  setxy   ( xcor-of turtle h + x )( r- K9 b* G7 L  Y, }
           (ycor-of turtle h + y ) ; F/ W5 f8 V' \* u( `7 k
                          
: L2 J% i6 m& C! F) `" C                          
/ t+ \, D$ P  P                          ]
% S4 }- n5 S( l8 |' mend
! O0 c( V) r( X3 `/ G: n! b7 m/ ]6 t/ n- F' ]$ d& b
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,# E) M, \# d' L7 Z# [! u
应该是/ n# U, U! u* w* A4 p9 I
ask turtles [
# }; c" D+ X" ?, vif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
2 x7 ^2 h" n9 ^$ r                          set y  Dep / 2
- L9 {2 F: c. r" [0 T3 |  O  G0 r9 N           set b  int (who / 5) * 50 x' T& b+ A$ {, G3 y% j
    setxy ( xcor-of turtle b + x )" k' z' i6 r0 ~  s1 s
          ( ycor-of turtle b + y )]]+ V, W! u" r7 A5 z2 q5 o) g
end
) {7 @) i$ T$ T1 E2 z2 S# x之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 14:23 , Processed in 0.014505 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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