|
|
5仿真币
最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。5 ?8 c: ^7 f) ~
private boolean findPotentialPartner(){
5 C7 m* [: j! }4 d2 c/ h2 i4 K1 y boolean value = false; G$ U/ a) g9 c3 [! C
: p6 F6 D2 r8 E- I0 b3 b) G6 I0 Q. ^
OrderedMulti2DGrid grid = space.getCurrentAgentSpace();: T' X" v, l' K# D2 i2 `
Iterator iterator = grid.getIteratorAt(x, y);
- _- X# R% z" M/ y* t! s SexAgent ag1 = null;
# Y# P% D4 N) [ SexAgent [] potenAgent = new SexAgent[20];' k* w* N6 v/ ]/ g, a1 ?. x
int goodNumber = 0;
' z4 i q& r, I/ S1 |/ | while(iterator.hasNext()){' F: F' m1 y' o' M9 x
System.out.println("XXXXXXXXXXXXXXXXXXXXX");* M9 }# f' p7 E7 R, s! C
ag1 = (SexAgent)iterator.next();
/ g9 H j$ V9 m# {3 O( K! }/ T if((ag1.sex == FEMALE) / _9 ?9 ~1 C+ q7 `; f+ H
&&(!ag1.isCoupled())){
4 T6 l5 l$ i! d1 v9 o% \% \ System.out.println("YYYYYYYYYYYYYYYYYYYY");' a( n- n( y( s1 |1 o- ~
potenAgent[goodNumber] = ag1;
i1 K* L4 X3 P8 _4 D5 k6 o4 _9 q goodNumber ++;5 k# Z. g6 X4 [) T, K- \9 j
}
5 l5 {. @9 J' L; o }" ]0 n# d1 |, A5 M4 B2 o) S V
8 A! t Q& c9 I9 j4 i' v3 j* C' B
if(goodNumber >0){7 o7 W3 @, C; }: Q ?8 ~3 i& j
System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ");
, ~0 {6 ` ~5 e+ j8 t Random rd1 = new Random();8 L3 r4 A. k8 I! S* W+ x8 S
int select = rd1.nextInt(goodNumber);
+ E. d( S* b2 ^! g$ i' A potentialParterner = potenAgent[select];4 U8 E" w9 X6 X
value = true;! {8 w6 K4 x1 e' x
}
) n% M% ?1 Q5 B" v6 y( C, Y return value;
7 z2 D B1 r3 |5 y2 ~ }
k8 b2 H R- H, E( O- f始终只能打印出XXXXXXXXXXXXXXXXXXXX,请各位帮帮忙。 |
|