代码指导,想把程序做略微改动,不知道需要怎么改?求指导!谢谢!
public void treatment() {final Grid<Object> grid = DWMUtils.getGrid(this);
final ContinuousSpace<Object> space = DWMUtils.getSpace(this);
GridPoint pt = grid.getLocation(this);
List<Object> Human = new ArrayList<Object>();
for (Object obj : grid.getObjectsAt(pt.getX(), pt.getY())) {
if (obj instanceof Human) {
Human.add(obj);
}
}
if (Human.size() > 0) {
Object obj = DWMUtils.randomElementOf(Human);
NdPoint spacePt = space.getLocation(obj);
@SuppressWarnings("unchecked")
Context<Object> context = ContextUtils.getContext(obj);
context.remove(obj);
Zombie zombie = new Zombie ();
context.add(zombie);
space.moveTo(zombie, spacePt.getX(), spacePt.getY());
grid.moveTo(zombie, pt.getX(), pt.getY());
}
}
首先,Human(人)、Zombie(僵尸)、DWMUtils(常用函数)是三个类,上面这段代码是为了获取Human所在位置上的所有Zombie对象存入列表中,如果该列表非空则在列表中随机取出一个对象进行治疗,使其由Zombie转变为Human(从context中移除该Zombie并添加一个新的Human)
现在想改为:
方案一:获取与该Human有关系的所有Human和Zombie(可以使用方法getSuccessors(主体))对象存入列表,判断是否为空,然后,选出其中所有的Zombie将其转变为Human(可以和上面一样通过删除一个Zombie添加一个Human的方式)。
或方案二:获取与该Human有关系的所有Zombie(可以使用方法getSuccessors(主体))对象存入列表,判断是否为空,然后,将所有Zombie转变为Human(可以和上面一样通过删除一个Zombie添加一个Human的方式)。