最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。 / V0 _5 _6 [+ p" ?3 @4 W% r private boolean findPotentialPartner(){; V/ l( A' Q. O! E- D
boolean value = false;/ x0 V3 z* t& l2 `2 r" B' I
# s1 v$ z; T( u" X: o
OrderedMulti2DGrid grid = space.getCurrentAgentSpace();8 s) A5 G# B+ ^& O: d4 p) D$ o/ {
Iterator iterator = grid.getIteratorAt(x, y);) S7 M: ~+ O& n0 X" q
SexAgent ag1 = null; ; i6 [7 N! ` n
SexAgent [] potenAgent = new SexAgent[20]; 8 T n% P$ j8 H' j; F int goodNumber = 0; * \, e; g2 p) Y5 E; [ {! I8 { while(iterator.hasNext()){. E* c' n: n" @2 e
System.out.println("XXXXXXXXXXXXXXXXXXXXX");) ?0 w @( l3 _8 N; P. ?: v
ag1 = (SexAgent)iterator.next();7 l. R! ?. K+ k9 ~3 ^( V
if((ag1.sex == FEMALE) ; Y! {: T6 O: m7 j' c( d! e7 e
&&(!ag1.isCoupled())){9 A7 _/ ]& \2 D, ^
System.out.println("YYYYYYYYYYYYYYYYYYYY");- a* f2 w5 @/ y: P; F
potenAgent[goodNumber] = ag1;+ }* a! z3 p, W5 m8 r8 c
goodNumber ++; ) L6 L1 ^+ K2 J. Q } + t' I" @1 A% N- n }: n- W7 E9 y* `# x( A6 X8 w
! B3 x1 Q$ T w* q F0 F7 Y if(goodNumber >0){3 R% V" N2 T0 V: Y8 t1 s. h
System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"); 7 z2 r. w/ l: M) a$ s7 V Random rd1 = new Random(); & ]1 [! @7 u1 @8 w* C1 z+ U; _9 c int select = rd1.nextInt(goodNumber);9 a, Q2 y, S1 A ]
potentialParterner = potenAgent[select]; . C+ N9 @1 C) t" W value = true;+ Y" d2 m4 K3 |) e
} % C6 v" ?$ l- J2 a* p return value;" ]% `$ o. K b6 ?5 C3 g
}. |' K! _, p# W
始终只能打印出XXXXXXXXXXXXXXXXXXXX,请各位帮帮忙。