设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7325|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。# l" q8 V) f8 Z3 i# m- z. Q
3 K; h  U$ E) @. I: z
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
+ T6 A7 \- e& j; R8 S9 [
+ ?# l8 t: |# M" A4 [) ^turtles-own [a b c d k f g h2 }2 D( V$ |& Z) j
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ' b  j/ O! U# \% N6 C
]6 e- s  c. {* ~* n$ D! T- c
to new
) L' y8 [" r5 }* a6 Z) E! Q  ca
  x* L# C! O- x; [  crt 5 * num_of_building$ `( r8 C0 K' ?. }0 u
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]  R9 Z& m0 |9 C$ Z
  scatter     ;;keep center-turtle random positions
% Y9 i2 @& l5 W: a( |  unit_plan   ;;make up the building plan+ C/ m7 p* s& E  C" z3 ~1 a
end
( K1 v1 w" L+ i# y$ rto scatter2 \& H% j7 n% q, ~4 W
ask turtles with [remainder who 5 = 0]
: {* ^6 h- I: d5 B8 A[
  ^# U, k& }/ {$ B# Pset xcor xcor - 6 + random-float 15
& j+ [; D+ p4 p& M8 ?( C# Hset ycor ycor - 6 + random-float 15
5 Z1 X1 X* c; P# n/ K% o+ G]8 F5 ~+ F. e& E! p( P: ~0 ]" m
end; i( e6 j7 ]: a& y6 g# u
to unit_plan ) m5 e# ?7 U: x, P2 f% u9 y
ask turtles [+ R9 w1 ?% X5 a3 Q) q* e
if (remainder who 5 = 1) [set a who
- c# Y, t/ p$ [, t& N/ w                          set x ( 0 - Wid / 2 ) 2 l" e8 O! E7 W. g8 {- @. U# W. y
                          set y  Dep / 2 ]9 j& F4 d$ r3 D' b! U5 O
           set b  int (a / 5) * 5
# U% F8 b. I, Y- M    setxy ( xcor-of turtle b + x )
/ U+ Y" h* l; E% C+ w          ( ycor-of turtle b + y )! }  U0 n! {' d% `6 Y# r0 P
if (remainder who 5 = 2) [set c who
. o% G; ^( Z- C  g                          set x ( 0 - Wid / 2 ) + q" ]6 q; H+ J+ z
                          set y (0 - Dep / 2 )  ]
1 Q  H; v1 c9 q* G8 G5 Q: E+ O$ n+ y# S                          set d int (c / 5) * 5
. ^& ~) y0 R# Z- E   setxy   ( xcor-of turtle d + x )
- c2 s; K1 t0 q' v! Y( H  k7 T           (ycor-of turtle d + y ) - y) ]0 U, Y8 L, K) q9 i$ s; }) b
            B. c; C* _7 _' f+ @
            ; O$ m. T4 V! o8 C
if (remainder who 5 = 3) [set k who
& G- f: a9 p7 g/ M9 S1 O8 N                          set x( Wid / 2)  9 B' p$ i: t0 i
                          set y (0 - Dep / 2 ) ]
$ [( m. Q+ R0 @0 D; e3 T                          set f int (k / 5) * 5
; C8 r  m% G' k  setxy   ( xcor-of turtle f + x )% ~$ }# v6 _" S' Z2 u. P3 h
           (ycor-of turtle f + y ) 9 n4 n9 {* V" B4 C
           ) J+ a# P) N, n7 I
           
6 e4 u* q: w% c5 E4 x3 vif (remainder who 5 = 4) [set g who( i0 h2 F9 e* E/ m, s* C; \: T1 C) Q
                          set x Wid / 2
5 i. J& @* ?9 L4 x) r" a$ D$ y* H                          set y  Dep / 2 ]
2 `. V) q% q0 g, h- d* d% ?                          set h  int (g / 5) * 5
+ @4 {; T4 z. O9 j% g  setxy   ( xcor-of turtle h + x )3 t" p: I9 d. w5 _" i
           (ycor-of turtle h + y ) 6 G3 T/ S* p5 [  b2 ?" D0 H! U- P. K  d
                          
# x% k; m# o0 e. ^/ z                          
7 H9 y  Z9 Y- C+ b: \                          ]- s$ Q: G3 s1 n6 M# o0 y  r
end
5 _; A  W8 B: `# i, z% d9 J% @. c% y  H; i
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,* h! E$ L" S1 S3 f
应该是/ e& j% x2 B/ W; V* ^6 a
ask turtles [
0 v" W6 y! b2 P" e  i+ dif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
6 N9 t! ~' k# @& y                          set y  Dep / 2
' ^+ E+ a- R+ W" y# m* U. K* I           set b  int (who / 5) * 5& G' V2 w7 a% L
    setxy ( xcor-of turtle b + x )
6 S" p  L" m& ?4 {$ i) G. d7 K$ ]          ( ycor-of turtle b + y )]]
  I4 D$ h  Q( q& G8 P! `0 ]! v% @$ Hend
3 V/ k1 o9 u* \. m5 f之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-29 13:50 , Processed in 0.013084 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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