最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。 # _$ A. y) N9 O& P H8 @, n private boolean findPotentialPartner(){, Q; Z. x6 Z% O, b4 C+ F. k
boolean value = false; C$ x8 ?# J2 `& R
2 N6 B5 \* p1 ^5 ]/ P, S, i OrderedMulti2DGrid grid = space.getCurrentAgentSpace();" ^, T" O" l! f& b
Iterator iterator = grid.getIteratorAt(x, y); 4 D% ~' L& X$ G8 p9 @4 t9 |0 w7 g9 N SexAgent ag1 = null; + D) t. v$ `8 w/ ^" j SexAgent [] potenAgent = new SexAgent[20]; 7 y$ z8 h6 [% g$ R int goodNumber = 0;0 P4 e _4 f& C1 Z6 x' O0 H( Z
while(iterator.hasNext()){ 2 }) K/ N* ], n& G% e* X1 g8 v System.out.println("XXXXXXXXXXXXXXXXXXXXX");/ R6 }9 x5 ?3 u* c
ag1 = (SexAgent)iterator.next(); 3 n, Q* H6 z3 B8 o) H if((ag1.sex == FEMALE) . R# j1 A; F/ R; z' N) A* f
&&(!ag1.isCoupled())){ / S1 n; I( T; ?8 x% p) c/ S# s" O System.out.println("YYYYYYYYYYYYYYYYYYYY"); ; x3 h, G1 F$ r' `, T) [ potenAgent[goodNumber] = ag1;! k4 _' _8 P' \) J
goodNumber ++; $ w" e4 A( |- F3 B7 g } 3 T9 n1 {! [: p }6 U" l& c5 h, |" C6 X% ?& u [% O
& a y' B! \8 \3 g0 C, \4 [ Z6 Q if(goodNumber >0){ " C: O5 l7 p8 u8 ~+ @. F6 z System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"); 8 F6 m- d( I0 Z! \6 D4 x W Random rd1 = new Random(); 2 }# n" g: B9 \' ^4 n h/ o int select = rd1.nextInt(goodNumber); d, T- I: }1 I
potentialParterner = potenAgent[select]; % j0 x5 B! {9 T' c( I value = true; 4 ` {. W! [+ y" F. ^ } " N7 h0 J4 f: d/ {* @6 W- k2 M3 B return value; # z6 l1 \ ^) W2 H( x } " r( a/ k* j& ^始终只能打印出XXXXXXXXXXXXXXXXXXXX,请各位帮帮忙。