|
|
5仿真币
最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。- | E$ u- R( _! w# Y! Q
private boolean findPotentialPartner(){) x( T* G* v% I( u8 V9 M
boolean value = false;
9 S- q$ d0 D; }5 i" p 1 Y* |, ^/ @, S9 X! @% ]0 V
OrderedMulti2DGrid grid = space.getCurrentAgentSpace();
5 ] L! E& }( v( ~ Iterator iterator = grid.getIteratorAt(x, y);
4 r5 O: [" R7 v! [' p6 A+ Y SexAgent ag1 = null;
& Y2 s1 e& p% G) |" P4 { SexAgent [] potenAgent = new SexAgent[20];. I# _: ?& L* d
int goodNumber = 0;
; }/ G! V3 H, d! {+ {6 v9 _/ `' x' p while(iterator.hasNext()){6 M0 j/ Q/ e& S8 E2 d. W9 h
System.out.println("XXXXXXXXXXXXXXXXXXXXX");
7 c- i( _: J& m( F# _5 q1 D( }& f ag1 = (SexAgent)iterator.next();6 ]$ x# o( |7 t. Q+ C/ M' u
if((ag1.sex == FEMALE)
/ q( t, U- h- [, b8 B" f4 h &&(!ag1.isCoupled())){. p. ~$ l: a0 k" ?; D, c: C/ W
System.out.println("YYYYYYYYYYYYYYYYYYYY");; f6 k/ a$ N3 o4 b7 Y2 x+ B1 i8 Q
potenAgent[goodNumber] = ag1;
g" X. ]2 M9 s/ N0 I" \ goodNumber ++;- {6 `, F) v# D8 n6 k/ b3 e
}8 H/ t2 m! o2 P' i m
}
: V) \2 _# _ l' t0 Z5 P# L
. E- w9 _) L9 F: }3 s if(goodNumber >0){
6 [2 b6 V/ w5 \" s. Y8 ?/ w! d System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ");
0 |; X8 T6 U" _$ N Random rd1 = new Random();/ L0 h6 Q, a9 O( E, y
int select = rd1.nextInt(goodNumber);% ^! V: ] {, |3 g/ x
potentialParterner = potenAgent[select];7 D- j& z2 c& G) A8 l" J
value = true;6 A) C S; N( M2 Q( e) `- h
}+ D5 E ^' E" y4 y$ `3 L
return value;
( x* D/ c" H( D# D' @ }' o i0 w% O1 O1 z% |
始终只能打印出XXXXXXXXXXXXXXXXXXXX,请各位帮帮忙。 |
|