私はアナロジックでモデルを構築しています。コードは次のとおりです。アニロジックの2つのオブジェクトを比較する
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%の確率で犠牲者を選ぶと考えられています。 2人の戦闘員は同じ犠牲者を共有することはできませんが、それは機能しません。 && !p.equals(victim)
は助けにはなりませんが、選択した人が既に犠牲者ではないことを確認する必要があります。
'People'クラスのequals(Object o)メソッドとhashCodeメソッドをオーバーライドしましたか? – MaxPower
''犠牲者 'はnullなので 'p.equals(victim)'は常に 'false'を返します。別のアプローチを使用する必要があります。例えば。犠牲者の集まりを作り、そこに仲間を追加する –