设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6767|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
5 {6 v% T; v: w5 [" e% q: r  m8 d7 ]- l% H* T
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。$ e0 A- C9 ?7 Z2 n: o
) g8 f5 ~0 {2 Q" R4 n
turtles-own [a b c d k f g h, q# o/ H( F3 ~: h% z; @
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
" k, y$ ?+ v! }5 R]1 \% n6 y7 S/ N8 u: f
to new
! ^5 C: L3 f+ ^1 r  ca
7 V' Y2 B: @2 i  crt 5 * num_of_building" V  C) p, N# q
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]9 r. y2 ?$ b+ G8 ]3 W4 ~5 }
  scatter     ;;keep center-turtle random positions + O! i3 p: i1 o# P# o$ N! s9 n3 i
  unit_plan   ;;make up the building plan5 C& @0 ]& u! ]8 a
end
! F. |; k8 Q: hto scatter; B2 i9 @! Q/ B& k& x3 F# T
ask turtles with [remainder who 5 = 0]
- @* B9 ]. _% q0 }6 Q" t5 W& K[$ V* s$ z& m, ~8 ~
set xcor xcor - 6 + random-float 15
$ Z% W  I' h: |) b& kset ycor ycor - 6 + random-float 15
  Y7 F! w& y" o& U  W]9 D* ^0 `: {+ H, J# G- p3 \4 f# I
end
& d% s' M! |: C. ^8 o# Pto unit_plan % W: s: P/ @2 J
ask turtles [
% u6 c5 A  V' Q% N& M" m9 m2 Wif (remainder who 5 = 1) [set a who
: E3 |4 V" l: Z& E8 k                          set x ( 0 - Wid / 2 )
0 C; Z" i; D' X8 L# z                          set y  Dep / 2 ]
( L: x. V# Y) e& o* I           set b  int (a / 5) * 5
, j# F) s7 T  o6 B# L; z+ O    setxy ( xcor-of turtle b + x ), e6 v  ^  g0 Z$ m. H$ K8 {
          ( ycor-of turtle b + y )3 h& o' u2 L9 ~6 g' }
if (remainder who 5 = 2) [set c who4 M6 z3 a: T6 W/ e9 _; G% J$ d
                          set x ( 0 - Wid / 2 )
, {; ~2 Y0 i0 f: E; O% \                          set y (0 - Dep / 2 )  ]
4 {  q8 D; n) k) ]- h                          set d int (c / 5) * 5- }- E* E4 C  R4 r0 f9 c1 d
   setxy   ( xcor-of turtle d + x )/ m6 j! {3 w# w& R1 f' O2 }
           (ycor-of turtle d + y )
2 A; ^, E% F" D  T1 Z5 n         
$ f$ v/ D2 |0 m2 T            4 t1 F) `/ I& o7 e
if (remainder who 5 = 3) [set k who2 P+ k! i1 S# F. f' V, b
                          set x( Wid / 2)  & ?( D3 z) w+ _7 r5 o# W
                          set y (0 - Dep / 2 ) ]: q* l$ r/ r+ Y# \1 s, D
                          set f int (k / 5) * 5. ^- m1 P% l% |
  setxy   ( xcor-of turtle f + x ); {6 a' \1 u4 |
           (ycor-of turtle f + y )
/ i/ n. p4 D; T% q0 j& O           
, Z* b# X* d+ k) r5 Q, X, p           
3 l$ n8 B! r* zif (remainder who 5 = 4) [set g who+ F* B5 H' ?$ Q! `
                          set x Wid / 2
! i$ E! T; t4 I6 i$ K% Q( T                          set y  Dep / 2 ], a# X0 u0 ]4 R' D. i3 ~$ W+ s
                          set h  int (g / 5) * 5
% N6 I! X) r8 s6 k( U' i  setxy   ( xcor-of turtle h + x )
* Z. y9 z  F% J0 p8 \& g$ d+ {3 F           (ycor-of turtle h + y ) 1 t2 V0 {$ e6 F, O4 j
                          
' B3 e# `) ~& f; u1 ]                          
) c! Q  U* A* K, J! m# O                          ]
0 n; h* e3 h  xend
" @) r$ l6 n9 a7 D% D% M' K3 Z1 u6 B& q! [
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
! T% y% e8 c  [1 P应该是
3 ]& E& L/ K, O2 [ask turtles [& w) a7 B- ]" T5 ]
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) * r5 e* Q: _* f0 u. h
                          set y  Dep / 2
0 r% O: f. e& e" ^6 j           set b  int (who / 5) * 5
& d, o+ K/ ?; f9 i5 D4 H$ r    setxy ( xcor-of turtle b + x ): }/ t8 K8 Q5 R: ?
          ( ycor-of turtle b + y )]]' l. }! g5 J5 m9 Q; X7 K1 ^/ `1 P
end
4 {  V0 n, L% `; \& k之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-21 18:22 , Processed in 0.018338 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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