|
|
5仿真币
最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。0 i6 Y6 i" u) p" }
private boolean findPotentialPartner(){2 h) C s1 a! d8 s3 `. Y0 |% a
boolean value = false;
4 H. x; k! ]0 |- v
" q) i# J- g3 j; x* x1 } OrderedMulti2DGrid grid = space.getCurrentAgentSpace();# v2 y% y: ^$ h( [
Iterator iterator = grid.getIteratorAt(x, y);4 V- w2 W9 x0 Y: M7 r7 i @0 o% f
SexAgent ag1 = null; 9 W4 ] V8 Y) v* Q( i& w- Q. u- F: c
SexAgent [] potenAgent = new SexAgent[20];7 u9 r; N) g! ~! w/ c
int goodNumber = 0;
' V& I; T A: H Y7 H3 R- f9 p while(iterator.hasNext()){
/ r1 |7 k1 H1 q: k) h. C System.out.println("XXXXXXXXXXXXXXXXXXXXX");
6 v6 x0 ]4 z4 M$ f& k6 @& S ag1 = (SexAgent)iterator.next();8 n8 p R2 m8 Y* _6 c. ~/ z0 {
if((ag1.sex == FEMALE)
9 c- H- X$ }5 S, z$ a &&(!ag1.isCoupled())){. p8 w% H4 a) C! [9 a& o5 u" w$ O; C& J
System.out.println("YYYYYYYYYYYYYYYYYYYY");
& {$ l9 w. h$ R. J( e- c potenAgent[goodNumber] = ag1;
3 ~& i, ?' m' E& }& O goodNumber ++;
, I* ^$ p- ~3 t: h }1 w0 s% x. Y# Y8 ^' r
}
# q7 q& z. m7 h$ [
# c" y6 `, s( u" e: `9 { p8 Q: { if(goodNumber >0){
7 M9 m! Y4 W% M/ w+ w System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ");
7 | b, q' F4 O, @$ V Random rd1 = new Random();, a: C+ F3 {- @/ h/ R0 ?/ k6 R
int select = rd1.nextInt(goodNumber);
- e! E3 @9 p1 [ potentialParterner = potenAgent[select];
: L. v1 ~/ j8 V" g value = true;% y0 d( I5 V" {9 k" {
}
& U# B( Q* E! g1 ]! w2 L return value;. b2 d3 B, a! w: j
}8 `) R1 ?. S2 X; J- |( l
始终只能打印出XXXXXXXXXXXXXXXXXXXX,请各位帮帮忙。 |
|