我正在使用anylogic构建模型。这是代码:
victim = null;
for (People p : main.people){
//když je dostatečně daleko
if((distanceTo(p, METER)) < fightDistance){
if( randomTrue( fightProbability ) && !p.equals(victim) ) {
victim = p; //set the victim
break; //stop scan
}
}
}
战斗机应该以20%的概率选择他的受害者。两个战士不能共享同一个受害者,这是无效的。我需要确保选择的人不是受害者,尽管&& !p.equals(victim)
没有帮助......
答案 0 :(得分:0)
您需要覆盖People类的equals()方法。 Inside equals()比较People的唯一字段。
答案 1 :(得分:0)
我通过在People类中创建变量isChased
来解决此问题,该变量设置为false
。然后我将其实现为Fighter
class:
victim = null;
for (People p : main.people){
//když je dostatečně daleko
if((distanceTo(p, METER)) < fightDistance){
if( randomTrue( fightProbability ) && p.isChased != true ) { //random decision
victim = p; //set the victim
p.isChased = true;
break; //stop scan
}
}
}`