Hallo zusammen,
ich programmiere gerade ein kleines Spiel.
Der Nutzer soll eingeben können, ob er Barbar oder Heiler spielt.
Dann wird in der Bedingung einer if überprüft ob Barbar oder Heiler eingegeben wurde.
Abhängig davon wird Heiler h1 = new Heiler() oder Barbar h1 = new Barbar() erstellt.
D.h. das Objekt soll in beiden fällen gleich heissen, aber von unterschiedlichen Klassen abgeleitet sein. Grund: Vererbungshierarchie und im Spiel will ich den Helden immer über h1 ansprechen (egal ob Barbar oder Held).
Problem:
Wenn ich ausserhalb der IF bzw while h1 ansprechen will, gibt der Compiler den Fehler "Cannot find Symbol". (Bei h1.name=...) Komischerweise kann ich h1.XXX ansprechen. D.h. es erscheinen die Attribute und Methoden....
Habe euch auch noch die Dateien Angehängt.
Wäre nett, wenn jemand was weiß.
ich programmiere gerade ein kleines Spiel.
Der Nutzer soll eingeben können, ob er Barbar oder Heiler spielt.
Dann wird in der Bedingung einer if überprüft ob Barbar oder Heiler eingegeben wurde.
Abhängig davon wird Heiler h1 = new Heiler() oder Barbar h1 = new Barbar() erstellt.
D.h. das Objekt soll in beiden fällen gleich heissen, aber von unterschiedlichen Klassen abgeleitet sein. Grund: Vererbungshierarchie und im Spiel will ich den Helden immer über h1 ansprechen (egal ob Barbar oder Held).
Problem:
Wenn ich ausserhalb der IF bzw while h1 ansprechen will, gibt der Compiler den Fehler "Cannot find Symbol". (Bei h1.name=...) Komischerweise kann ich h1.XXX ansprechen. D.h. es erscheinen die Attribute und Methoden....
Habe euch auch noch die Dateien Angehängt.
Wäre nett, wenn jemand was weiß.
Java:
/**
*
* Beschreibung
*
* @version 1.0 vom 11.11.2017
* @author
*/
import java.util.Scanner;
public class Startklasse {
public static void main(String[] args) {
boolean nochmal=true;
Scanner tastatur = new Scanner(System.in);
Monster m1 = new Monster();
m1.name="Mooonster";
m1.lebensenergie=10;
//Abfrage, welche Klasser der Spieler spielen will
while (nochmal) {
System.out.print("Welche Klasse wollen Sie spielen (Heiler oder Barbar)? : ");
String heldenklasse=tastatur.next();
//Heldenobjekt wird erstellt. Entweder Heiler oder Barbar
if (heldenklasse.equals("Heiler")) {
Heiler h1 = new Heiler();
h1.lebensenergie=10;
h1.schlachtruf();
nochmal=false;
} // end of if
else if (heldenklasse.equals("Barbar")){
Barbar h1 = new Barbar();
h1.lebensenergie=10;
h1.schlachtruf();
nochmal=false;
} // end of if-else
else {
System.out.println("Gebe als Heldenklasse Heiler oder Barbar ein!!!");
} // end of if-else
} // end of while
System.out.print("Gebe den Namen deines Helden ein: ");
h1.name=tastatur.nextLine();
System.out.println("Die Lebenenergie des Helden und des Monsters betragen jeweils 10!");
System.out.println("------------------------------------------");
while (nochmal) {
System.out.println("");
//Held greif Monster an
int schadenheld=h1.angriff();
//Sonderfähigkeit des Heldes wird abgefragt
if (heldenklasse.equals("Heiler")) {
h1.heilen();
} // end of if
else if (heldenklasse.equals("Barbar")){
} // end of if-else
//Nach Angriff des Helden wird der Gesundheitscheck für das Monster ausgeführt
m1.gesundheitsCheck(schadenheld);
//Monster greift Held an
int schadenmonster=m1.angriff();
//Gesundheitscheck für den Held
h1.gesundheitsCheck(schadenmonster);
// if (m1.lebensenergie<=0 || h1.lebensenergie<=0) {
// weiterspielen=false;
// } // end of if
} // end of while
} // end of main
} // end of class Startklasse