比较anylogic中的两个对象

时间:2017-07-18 19:52:30

标签: java anylogic agent-based-modeling

我正在使用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)没有帮助......

2 个答案:

答案 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
            }
    }
}`