Je construis un modèle avec anylogic. Voici le code:Comparer deux objets dans 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
}
}
}
Le chasseur est censé choisir sa victime avec la probabilité de 20%. Deux combattants ne peuvent pas partager la même victime, ce qui ne fonctionne pas. Je dois m'assurer que les personnes choisies ne sont pas déjà la victime, bien que && !p.equals(victim)
n'aide pas ...
Avez-vous des égaux (substituée o Object) et des méthodes hashCode dans votre classe 'People'? – MaxPower
'p.equals (victime)' retournera toujours 'false' puisque' victim' est nul. Vous devriez utiliser une autre approche. Par exemple. créer une collection de victimes et y ajouter du peopel –