设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8051|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。7 Y) I1 V! k5 c) L# `% l

3 m+ U7 @9 X; j; u1 o但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。; ^: x, p, a+ L8 Z) J  T

( O- d' r- E" s' ?  vturtles-own [a b c d k f g h3 F4 j+ a1 T+ t& _! S
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
( k( j* q# W0 G$ {$ q]
* d4 L6 [7 r0 K7 O. O4 cto new
% Q8 c6 g! u% w- {  ca
. J% F& l/ p7 s3 y% a) Y3 k  crt 5 * num_of_building& r- f9 i4 V4 u1 w, O! k% ?$ ?& O% ^
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]1 ^" @6 e7 T9 y: a
  scatter     ;;keep center-turtle random positions
7 z9 l! w: c, |  unit_plan   ;;make up the building plan, Z4 G3 s' K: L
end
+ P4 t1 G! e# rto scatter/ C% L. h7 u& C
ask turtles with [remainder who 5 = 0]' C4 C. O* j; L/ e6 a7 h
[7 N! W0 _/ M0 e! [) r
set xcor xcor - 6 + random-float 15
: W- b, O; y, U  b$ H- {, cset ycor ycor - 6 + random-float 15
; e" q8 [2 E0 T. p2 [. B]0 n* \, o1 c( U7 W3 Y4 }7 X
end  |/ A$ Q% J; ]6 j" Z8 i, a# b
to unit_plan
3 ^- e0 p) ~0 ]/ M' Iask turtles [
; C& v8 n1 i! X; ]0 e& F: E* `if (remainder who 5 = 1) [set a who & R( n- Z- L# o
                          set x ( 0 - Wid / 2 ) ' ?# E1 ~9 K9 |9 l) r
                          set y  Dep / 2 ]6 |& f6 e( D- l( s; @- j$ {
           set b  int (a / 5) * 5
' \3 _+ f* g8 M5 I$ ]3 [8 X( w( A    setxy ( xcor-of turtle b + x )4 w# V" ~, T9 {7 V1 i3 X) u& u
          ( ycor-of turtle b + y )+ _- n. d! q$ a3 {1 ~4 E
if (remainder who 5 = 2) [set c who* B* s9 q) k# `9 O- s
                          set x ( 0 - Wid / 2 )
3 t2 P5 h7 j/ a7 }                          set y (0 - Dep / 2 )  ]1 P+ R1 k' k+ H$ ^: n6 w
                          set d int (c / 5) * 51 k- l, g* p- j5 E0 k9 \5 z  C
   setxy   ( xcor-of turtle d + x ): S& u' t  B* }0 {( {( H% a& p
           (ycor-of turtle d + y ) $ s  R- d5 m6 H! T  S& K
          7 x' Q( o& h$ r1 N
            % g- V9 _- m/ s; k
if (remainder who 5 = 3) [set k who! c3 ^5 l- j/ Z
                          set x( Wid / 2)  2 l4 n- q2 [+ Y. E
                          set y (0 - Dep / 2 ) ]
2 Q+ y$ ?" ^7 |0 n. p* Y' H                          set f int (k / 5) * 5
! Q$ {9 B) x% ~+ O& V: J$ {  setxy   ( xcor-of turtle f + x )
- M0 t& H5 i3 e4 |+ V# o% R: J  l           (ycor-of turtle f + y ) 5 h8 w- b; g+ p. z4 c+ T0 _6 U- @
           2 ^6 ]3 J3 q: H0 k# J
           7 X' \; k2 ^' Y- Y$ [
if (remainder who 5 = 4) [set g who' J: [0 Q; r3 m. I: g0 K* S
                          set x Wid / 2 2 W/ C  ]$ _* U( m
                          set y  Dep / 2 ]4 R' F. w: X# Q6 N/ x/ H
                          set h  int (g / 5) * 5( C3 O) h; i+ \7 [; }
  setxy   ( xcor-of turtle h + x )
" U% K8 _$ x8 l* ~3 o           (ycor-of turtle h + y ) 0 x/ B. I) @! |6 x3 e
                          % K: w( O% h8 k$ F3 m! k
                          4 g$ f) R, q( d7 N( c! Y# A( [
                          ]+ e2 e' n0 Q$ M. q5 F6 P
end( Z3 Q+ ]- \, Q% j
0 J4 m, ^% b& y, |0 c+ |0 H
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,+ @+ I* A. y% x, u$ O
应该是- y. d2 n8 A- n8 R4 J
ask turtles [
/ Y% `( S0 a$ N8 F0 Oif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) / a: r$ f% b: F4 T- o
                          set y  Dep / 2
' p8 G! j8 b; a9 x/ d           set b  int (who / 5) * 5
- \$ t4 x, k0 A0 z& B5 @    setxy ( xcor-of turtle b + x )
5 t; n4 Q0 _. X# i          ( ycor-of turtle b + y )]]
% b  {) w, G* N& {" Q# |. jend
& _# F- j, W7 A/ z0 ]' ~. ?+ ~" v之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-1 23:40 , Processed in 0.015708 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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