|
|
5仿真币
最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。4 j4 o9 X( [( s
private boolean findPotentialPartner(){
+ t) N6 l4 T# c2 ?2 n. h( d boolean value = false;' |4 G0 u" F6 l5 N# _
* m* a$ N& p& }8 ` OrderedMulti2DGrid grid = space.getCurrentAgentSpace();
) f( J7 a9 ~' W! @; G' W$ { Iterator iterator = grid.getIteratorAt(x, y);6 b. M& ^1 p. _% D8 O
SexAgent ag1 = null;
9 `6 o" s' i, Q7 v' |1 [- j SexAgent [] potenAgent = new SexAgent[20];# R2 n# V5 P/ k L$ X9 @) k
int goodNumber = 0;
: T A4 K% }* v# i- s. k, K) e" H while(iterator.hasNext()){
/ t" \" l9 d5 l# Y0 }$ _ System.out.println("XXXXXXXXXXXXXXXXXXXXX");
2 ?4 J+ h. O( }# q- } ag1 = (SexAgent)iterator.next();# K r2 n2 r$ Z( w5 f8 R7 w3 \, ]0 @# L
if((ag1.sex == FEMALE) * C) p& _, G9 |. C& a" z, M
&&(!ag1.isCoupled())){! e. u7 H* @8 C
System.out.println("YYYYYYYYYYYYYYYYYYYY");4 P0 Y/ F, c; [
potenAgent[goodNumber] = ag1;( F* [ a5 e& l
goodNumber ++;
4 C% D* u! o* R4 F7 x. ]$ B7 C; |5 Q }
# H& n/ B. v3 K# x0 U }5 O& J) C3 U" f6 g& C
2 G4 H- A F' l. f+ h* u T if(goodNumber >0){. }( C2 Q1 Q" ~/ _5 j
System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"); ) i1 i1 P5 p( H" ?6 O
Random rd1 = new Random();
+ t; j: @/ y K* c$ q) N" Z# o( [9 J int select = rd1.nextInt(goodNumber);9 }. o1 d9 c3 o) E( F
potentialParterner = potenAgent[select];
5 G A* e5 M4 r1 ?3 n value = true;
- u/ D7 k& ?5 r9 W) x }
: Y' {- O" |1 o0 K return value;
2 E8 y' p0 C" @; X% B6 j1 c/ x }
5 _0 _' B2 |/ E& n始终只能打印出XXXXXXXXXXXXXXXXXXXX,请各位帮帮忙。 |
|