G
Gast2
Gast
Moin,
da ich momentan nicht weis wie ich das Programmtechnisch umsetzen soll ... folgendes
ich habe eine Klasse Krieger ... Augenmerk liegt auf der Methode AttackValue()
dann gibt es noch verschiedene Klassen die von Krieger erben (macht Sinn)
diese Klassen haben die Methode AttackValue() erfolgreich überschrieben und liefern einen passenden Angriffswert ... das Problem liegt beim Speerkämpfer
greift der Speerkämpfer den Schwertkämpfer an, so habe ich einen Angriffswert ... greift der Speerkämpfer aber den Reiter an, so habe ich einen anderen Angriffswert
meine einzige Idee wie ich das Problem lösen kann, wäre der Methode den Angegriffenen (also Reiter oder Schwertkämpfer) mit zu liefern ... dann müsste ich in der Methode entsprechenden mit if (o instanceof Schwertkaempfer) arbeiten ... das würde ich gerne vermeiden, da es mehrere solcher Ausnahmen und noch weitere Krieger gibt ... somit wird es ein langes if mit instanceof
ich hätte gerne eine nette OOP-Lösung (wo einem meist alles auf die Füße fällt)
hand, mogel
da ich momentan nicht weis wie ich das Programmtechnisch umsetzen soll ... folgendes
ich habe eine Klasse Krieger ... Augenmerk liegt auf der Methode AttackValue()
Code:
public class Krieger
{
public int AttackeValue() { return 0; }
public void _1on1_(Krieger defender)
{
int value = Atlantis.rnd(0, AttackValue() + defender.AttackValue());
// Angriff erfolgreich? -> Schaden berechnen
if (value <= AttackValue()) defender.lebenspunkte -= DamageValue();
}
// weiterer Kram
}
dann gibt es noch verschiedene Klassen die von Krieger erben (macht Sinn)
Code:
public class Schwertkaempfer extends Krieger { }
public class ReiterMitSchwert extends Krieger { }
public class Speerkämpfer extends Krieger { }
diese Klassen haben die Methode AttackValue() erfolgreich überschrieben und liefern einen passenden Angriffswert ... das Problem liegt beim Speerkämpfer
greift der Speerkämpfer den Schwertkämpfer an, so habe ich einen Angriffswert ... greift der Speerkämpfer aber den Reiter an, so habe ich einen anderen Angriffswert
meine einzige Idee wie ich das Problem lösen kann, wäre der Methode den Angegriffenen (also Reiter oder Schwertkämpfer) mit zu liefern ... dann müsste ich in der Methode entsprechenden mit if (o instanceof Schwertkaempfer) arbeiten ... das würde ich gerne vermeiden, da es mehrere solcher Ausnahmen und noch weitere Krieger gibt ... somit wird es ein langes if mit instanceof
ich hätte gerne eine nette OOP-Lösung (wo einem meist alles auf die Füße fällt)
hand, mogel