Ich baue ein Modell mit anylogic. Hier ist der Code:Vergleich zweier Objekte in 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
}
}
}
Der Kämpfer soll sein Opfer mit der Wahrscheinlichkeit von 20% wählen. Zwei Kämpfer können nicht dasselbe Opfer teilen, was nicht funktioniert. Ich muss sicherstellen, dass die ausgewählten Leute nicht das Opfer bereits ist, obwohl && !p.equals(victim)
nicht hilft ...
Sie equals überschrieben Haben (Object o) und hashCode Methoden in Ihrem 'People' Klasse? – MaxPower
'p.quals (Opfer)' wird immer 'falsch' zurückgeben, da 'Opfer' null ist. Sie sollten einen anderen Ansatz verwenden. Z.B. Erstelle eine Sammlung von Opfern und füge ein paar Leute hinzu –