我想实现一个像这样工作的方法攻击:我部队中的每个战士都攻击从另一个部队中随机选择的战士。如果被攻击的战士死亡,则必须将其从部队中移除。使用我尝试的方法,我得到了随机数的错误:
java.lang.IllegalArgumentException: n must be positive
部队是List<Creature>
战士;我认为我没有正确地进行删除,否则我不应该有那个错误。
public void atac(Troop opponentTroop){
for(Creature f : warriors){
Creature c = getOpponent(opponentTroop);
f.atac(c);
ListIterator<Creature> iterator = opponentTroop.warriors.listIterator();
while(iterator.hasNext()){
c = iterator.next();
if(c.isDead()){
iterator.remove();
}
}
}
}
private Creature getOpponent(Troop opponent){
int x = rand.getRandomArrayIndex(opponent.warriors.size());
return opponent.warriors.get(x);
}