Da bin ich mal wieder, besser in einem neuen Thread
Also, dass Spiel kommt gut voran, was bei mir momentan scheitert, ist es einen Gegenstand auf einen von mehreren Charaktere zu verteilen.
Folgende Erläuterung:
Ich habe ein team aus 6 Figuren. Wenn ich nun einen Gegenstand ziehen will, muss dieser zunächst Angezeigt werden, und dann muss ich ich entscheiden, wer den Gegenstand bekommt.
Das ist soweit kein Problem.
Geregelt ist die Klasse Gegenstand so:
Das Problem ist nun, wie lasse ich ihn die richtige Methode ausführen, die zum passenden gezogenen Item passt?
Es gibt dann halt für jeden Gegenstand eine Methode. Anfangs hatte ich es so, dass bei den cases sofort die Werte geseigert werden, aber ich möchte gerne zuerst sehen, was für ein Item es ist und dann wählen wer das Item bekommt. Andersrum ist es einfacher, aber weniger sinnvoll^^
Leider kann man ja nicht sowas wie:
TestGegenstand.Aktuell(...);
machen^^
Gibt es eine Möglichkeit, das so ähnlich zu machen? also dass er quasi die Methode ausführt, die in der Variable Aktuell steht?
Die einzige andere Möglichkeit die ich sehe, ist mit IF, aber da habe ich ja schon bei 10 verschiedene Gegenstände ne lange Anweisung.
Hoffe ihr könnt mir weiter helfen
MfG
Also, dass Spiel kommt gut voran, was bei mir momentan scheitert, ist es einen Gegenstand auf einen von mehreren Charaktere zu verteilen.
Folgende Erläuterung:
Ich habe ein team aus 6 Figuren. Wenn ich nun einen Gegenstand ziehen will, muss dieser zunächst Angezeigt werden, und dann muss ich ich entscheiden, wer den Gegenstand bekommt.
Das ist soweit kein Problem.
Geregelt ist die Klasse Gegenstand so:
Java:
public class TestGegenstand
{
public static int zufall;
public String Aktuell;
public TestGegenstand()
{
}
public void ZufallGegenstand()
{
zufall=(int)(Math.random()*6);
switch(zufall)
{
case 0:
System.out.println("Trank");
Aktuell = "Trank";
break;
case 1:
System.out.println("Schwert");
Aktuell = "Schwert";break;
case 2:
System.out.println("Schild");
Aktuell = "Schild";break;
case 3:
System.out.println("Axt");
Aktuell = "Axt";break;
case 4:
System.out.println("Bohne");
Aktuell = "Bohne";break;
case 5:
System.out.println("Medizin");
Aktuell = "Medizin";break;
}
}
public void Schwert(Figur Name)
{
Name.setAtk(Name.getAtk() + (100-Name.Schwert));
Name.setSchwert(100, "Schwert");
}
Das Problem ist nun, wie lasse ich ihn die richtige Methode ausführen, die zum passenden gezogenen Item passt?
Es gibt dann halt für jeden Gegenstand eine Methode. Anfangs hatte ich es so, dass bei den cases sofort die Werte geseigert werden, aber ich möchte gerne zuerst sehen, was für ein Item es ist und dann wählen wer das Item bekommt. Andersrum ist es einfacher, aber weniger sinnvoll^^
Leider kann man ja nicht sowas wie:
TestGegenstand.Aktuell(...);
machen^^
Gibt es eine Möglichkeit, das so ähnlich zu machen? also dass er quasi die Methode ausführt, die in der Variable Aktuell steht?
Die einzige andere Möglichkeit die ich sehe, ist mit IF, aber da habe ich ja schon bei 10 verschiedene Gegenstände ne lange Anweisung.
Hoffe ihr könnt mir weiter helfen
MfG