Nach switch case weiter mit Auswahl

xtina80

Mitglied
Hallo,

ich habe in meinem "Spiel" eine Charakterauswahl drin, in der man zwischen 3 Spielerklassen wählen kann. Jetzt möchte ich, dass je nach Auswahl nur die jeweilige Klasse weiterspielt.

Hat vielleicht jemand einen Vorschlag wie ich das am besten hinbekomme?

LG
 
Jetzt möchte ich, dass je nach Auswahl nur die jeweilige Klasse weiterspielt.

Hat vielleicht jemand einen Vorschlag wie ich das am besten hinbekomme?

Indem du es so programmierst! 😉
Nein ehrlich, was für Informationen erwartest du von uns? Die Beschreibung ist sehr wage und die Frage zu allgemein.
Etwas Code wäre für uns auch sicher hilfreich, im Threadtitel ist von switch die Rede.

Meinst du so etwas?
Java:
Charakter c = null;
switch(auswahl) {
    case 1:
        c = new Krieger();
        break;
    case 2:
        c = new Priester();
        break;
}
c.play();
 
Sorry für die wage Beschreibung aber ich weiß nicht wie ich das anders erklären soll, da mein Problem sich nicht auf eine bestimmte Fehlermeldung bezieht sondern es ist eher ein Problem der Umsetzung, da ich noch ein blutiger Anfänger bin😕

Indem du es so programmierst! 😉
Nein ehrlich, was für Informationen erwartest du von uns? Die Beschreibung ist sehr wage und die Frage zu allgemein.
Etwas Code wäre für uns auch sicher hilfreich, im Threadtitel ist von switch die Rede.

Meinst du so etwas?
Java:
Charakter c = null;
switch(auswahl) {
    case 1:
        c = new Krieger();
        break;
    case 2:
        c = new Priester();
        break;
}
c.play();

Genau! So ungefähr sieht es bei mir aus. Jetzt möchte ich aber, dass das Spiel mit dem ausgewählten Helden weitergeht. Ich möchte nun, dass der Charakter zb. gegen ein Monster kämpft. Die Klassen und Methoden habe ich schon angelegt.

In meiner Rohversion sah das bei mir so aus:

Java:
public class Main
{
    public static void Main()
   {
       Heiler Spielcharakter1 = new Monster();
       Magier Spielcharakter2 = new Magier();
       Spielcharakter2.schlage(Spielcharakter1);
       Spielcharakter1.schlage(Spielcharakter2);
 
   }

In der erweiterten Version kann der Spieler zwischen Magier,Krieger und Heiler wählen (das sieht ungefähr so aus wie beim Post von Joose) und ich kann das deshalb nicht so wie oben programmieren, da es ja von der Auswahl abhängt, welcher Charakter gegen das Monster kämpft und ich weiß nicht wie ich diese Abhängigkeit von der Auswahl umsetzen soll.

Ich hoffe ihr versteht jetzt wie ich das meine, ich kann das wirklich nicht so gut erklären😕
 
Sorry für die wage Beschreibung aber ich weiß nicht wie ich das anders erklären soll, da mein Problem sich nicht auf eine bestimmte Fehlermeldung bezieht sondern es ist eher ein Problem der Umsetzung, da ich noch ein blutiger Anfänger bin😕
Kein Problem, aber einfach immer soviele Informationen wie möglich hergeben 😉
Code bzw. Pseudocode sind auch immer hilfreich um eine Beschreibung genauer zu erläutern

..... und ich kann das deshalb nicht so wie oben programmieren, da es ja von der Auswahl abhängt, welcher Charakter gegen das Monster kämpft und ich weiß nicht wie ich diese Abhängigkeit von der Auswahl umsetzen soll.
Ich nehme an deine Klassen Krieger/Magier/Heiler haben eine gemeinsame Basisklasse oder?

Es sollte eigentlich ausreichen dann mit der Variable "c" (bezogen auf mein Beispiel) weiterzuarbeiten.
 
Ich nehme an deine Klassen Krieger/Magier/Heiler haben eine gemeinsame Basisklasse oder?

Es sollte eigentlich ausreichen dann mit der Variable "c" (bezogen auf mein Beispiel) weiterzuarbeiten.

Ja genau! Die erste Klasse ist die Klasse "Spielfigur", dann habe ich es gesplittet auf "Held" und "Monster" und die einzelnen Spielcharakter Krieger/Magier/Heiler sind jeweils Unterklassen von "Held".

Könntest du mir vllt einen Beispielcode dazu posten, wie das mit der Variable bei einem Kampf so ungefähr aussehen müsste?

Vielen Dank!
 
Java:
Held h = null;
switch(auswahl) {
    case 1:
        h = new Krieger();
        break;
    case 2:
        h = new Heiler();
        break;
}

Monster m = new Monster();
h.schlage(m);
m.schlage(h);

Genau sowie du es schon hattest. Wenn die Methode "schlage" abstrakt ist könnte sie je nachdem von welchem Objekt sie aufgerufen wird etwas anderes machen.

Aber das ist jetzt sehr vereinfacht und grob dargestellt.
Für ein Spiel würde ich hier wahrscheinlich eine Klasse "Kampfsimulator" schreiben welche den Ablaufe eines Kampfes regelt (wer ist dran mit schlagen, ist schon wer besiegt, Einsatz von Spezialsachen oder ähnliches, ...). Es gibt auch viele kleine RPG welche in Java geschrieben wurden -> einfach mal auf Google suchen und schauen wie andere es gelöst haben.
 

Zurück
Oben