Hallo,
Ich programmiere für die Schule ein kleines Textadventure mit Java. Dafür habe ich eine Klasse (Main) erstellt und mein Programm geschrieben. Nun sollen wir für unser Textadventure ein Klassendiagramm erstellen. Hierfür benötige ich ja mehrere Klassen. Meine Frage ist, wie ich mein Textadventure umbauen muss um mehrere Klassen zu erstellen, zum beispiel für den Held oder den Gegner, um ein übersichtliches Programm zu bekommen. Ebenfalls sind Anmerkungen zu meinem Programm gerne erwünscht, bin Absoluter Anfänger
Danke im Vorraus.
Hier mein Code, welchen ich mit Eclipse erstellt habe:
Ich programmiere für die Schule ein kleines Textadventure mit Java. Dafür habe ich eine Klasse (Main) erstellt und mein Programm geschrieben. Nun sollen wir für unser Textadventure ein Klassendiagramm erstellen. Hierfür benötige ich ja mehrere Klassen. Meine Frage ist, wie ich mein Textadventure umbauen muss um mehrere Klassen zu erstellen, zum beispiel für den Held oder den Gegner, um ein übersichtliches Programm zu bekommen. Ebenfalls sind Anmerkungen zu meinem Programm gerne erwünscht, bin Absoluter Anfänger
Danke im Vorraus.
Hier mein Code, welchen ich mit Eclipse erstellt habe:
Java:
package adventuregame;
import java.util.Scanner;
public class Main {
//Definieren von Variablen und einführen eines Scanners
Scanner myScanner = new Scanner(System.in);
Scanner enterScanner = new Scanner(System.in);
int lebenspunkteHeld;
String name;
String waffe;
int auswahl;
int lebenspunkteGegner;
int hebelErsteKreuzung;
public static void main(String[] args) {
Main game;
game = new Main();
game.startwerte();
game.magischesTor();
}
//Spielstart und das Festlegen von Variablenwerten
public void startwerte() {
lebenspunkteHeld = 10;
lebenspunkteGegner = 15;
waffe = "Schwert";
System.out.println("Deine Lebenspunkte: " + lebenspunkteHeld);
System.out.println("Deine Waffe: " + waffe);
System.out.println("Hier kannst du deinen Namen eingeben:");
name = myScanner.nextLine();
System.out.println("Hallo " + name + ", Lass uns Loslegen!");
}
//Interaktion mit dem alten Mann und betreten des Waldes
public void magischesTor() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du befindest dich vor einem mystisch aussehenden Tor.");
System.out.println("Ein alter Mann mit Gehstock steht vor dem Tor.");
System.out.println("");
System.out.println("Was möchtest du machen?");
System.out.println("");
System.out.println("1: Mit dem Mann reden");
System.out.println("2: Den alten Mann angreifen");
System.out.println("3: Durch das Tor gehen");
System.out.println("\n------------------------------------------------------------------\n");
auswahl = myScanner.nextInt();
if (auswahl == 1) {
System.out.println("Alter Mann: Guten Tag, du musst " + name
+ " sein\nHinter dem Tor liegt ein unheimlicher Wald, in dem es nur so von gefährlichen Kreaturen wimmelt.\nKomm herein und hilf mir sie zu beseitigen, du bist der Ausserwählte");
enterScanner.nextLine();
magischesTor();
}
else if(auswahl == 2) {
lebenspunkteHeld = lebenspunkteHeld - 1;
System.out.println(
"Alter Mann: Was soll das?\n\nDer alte Mann schlägt dich mit seinem Stock, du scheinst ihn nicht getroffen zu haben und hörst auf zu kämpfen.\n(Du erhälst einen Schadenspunkt)\n");
System.out.println("Deine Lebenspunkte: " + lebenspunkteHeld);
enterScanner.nextLine();
magischesTor();
} else if (auswahl == 3) {
ersteKreuzung();
} else {
magischesTor();
}
}
//Wegkreuzung am Wald und Möglicher Durchgang zu der nächsten Kreuzung
public void ersteKreuzung() {
if (hebelErsteKreuzung == 1) {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Als du wieder an der Kreuzung ankommst, entdeckst du ein großes Loch in der Wand.\n\n");
System.out.println("1: Durch das Loch gehen");
System.out.println("2: bleiben");
System.out.println("\n------------------------------------------------------------------\n");
auswahl = myScanner.nextInt();
if (auswahl == 1) {
System.out.println("Die Mauer schließt sich wieder, du gehst einen Weg entlang..\n\n");
zweiteKreuzung();
} else if (auswahl == 2) {
hebelErsteKreuzung = 2;
System.out.println("Die Mauer schließt sich wieder, der Hebel muss erneut gezogen werden.\n\n");
ersteKreuzung();
} else {
ersteKreuzung();
}
} else {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du bist and einer Kreuzung angekommen. Eine Mauer versperrt den Weg, es geht nach rechts oder links.\n\n");
System.out.println("1: Gehe nach rechts");
System.out.println("2: Gehe nach links");
System.out.println("3: Zurück zum magischen Tor");
System.out.println("\n------------------------------------------------------------------\n");
auswahl = myScanner.nextInt();
if (auswahl == 1) {
rechts1();
} else if (auswahl == 2) {
links1();
} else if (auswahl == 3) {
magischesTor();
} else {
ersteKreuzung();
}
}
}
//Möglichkeit rechts
public void rechts1() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du läufst an Bäumen vorbei zu einem mysteriösen Gelände auf dem ein eiserner Hebel steht. Du ziehst an dem Hebel.");
System.out.println("1: Zurück zur Kreuzung");
System.out.println("\n------------------------------------------------------------------\n");
hebelErsteKreuzung = 1;
auswahl = myScanner.nextInt();
if (auswahl == 1) {
ersteKreuzung();
} else {
rechts1();
}
}
//Möglichkeit links
public void links1() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du läufst die Mauer entlang und entdeckst eine tote Kreatur, in der ein ein goldener Dolch steckt. Du ziehst den Dolch aus ihr heraus");
waffe = "Dolch";
System.out.println("Deine neue Waffe: " + waffe);
System.out.println("1: Zurück zur Kreuzung");
System.out.println("\n------------------------------------------------------------------\n");
auswahl = myScanner.nextInt();
if (auswahl == 1) {
ersteKreuzung();
} else {
links1();
}
}
//Zweite Kreuzung
public void zweiteKreuzung() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du läufst weiter, bis du zu einer Gabelung gelangst.\n\n");
System.out.println("1: Geradeaus weitergehen");
System.out.println("2: nach rechts gehen");
System.out.println("3: nach links gehen");
System.out.println("\n------------------------------------------------------------------\n");
auswahl = myScanner.nextInt();
if (auswahl == 1) {
//mehm();
} else if (auswahl == 2) {
rechts2();
} else if (auswahl == 3) {
links2();
} else {
zweiteKreuzung();
}
}
//Möglichkeit links
public void rechts2() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du läufst zu einem kleinen Bach, in dem frisches klares Wasser fließt und trinkst einen Schluck.");
System.out.println("Du heilst dich.");
lebenspunkteHeld = lebenspunkteHeld + 1;
System.out.println("Deine Lebenspunkte: " + lebenspunkteHeld);
System.out.println("1: Zurück zur Kreuzung");
System.out.println("\n------------------------------------------------------------------\n");
auswahl = myScanner.nextInt();
if (auswahl == 1) {
zweiteKreuzung();
} else {
rechts2();
}
}
//Möglichkeit rechts
public void links2() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du Du läufst einen dunklen Pfad entlang bis du eienen Friedhof am Straßenende siehst. Du gehst Zielstrebig hin, als du ein rascheln hörst. Plötzlich steht ein Skelettartiges Wesen von dir");
System.out.println("1: Greife das Wesen an");
System.out.println("2: Renne so schnell wie du kannst");
System.out.println("\n------------------------------------------------------------------\n");
hebelErsteKreuzung = 1;
auswahl = myScanner.nextInt();
if (auswahl == 1) {
kämpfen();
} else if (auswahl ==2 ) {
zweiteKreuzung();
}
}
public void kämpfen() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Deine Lebenspunkte: " + lebenspunkteHeld);
System.out.println("Lebenspunkte Gegner: " + lebenspunkteGegner);
System.out.println("1: Angriff");
System.out.println("2: Fliehen");
System.out.println("\n------------------------------------------------------------------\n");
auswahl = myScanner.nextInt();
if (auswahl == 1) {
angriff();
} else if (auswahl == 2) {
zweiteKreuzung();
} else {
kämpfen();
}
}
public void angriff() {
int schaden = 0;
if (waffe.equals("Schwert")) {
schaden = new java.util.Random().nextInt(5);
} else if (waffe.equals("Dolch")) {
schaden = new java.util.Random().nextInt(8);
}
System.out.println("Du greifst deinen Gegner an und machst " + schaden + " Schaden!");
lebenspunkteGegner = lebenspunkteGegner - schaden;
System.out.println("Lebenspunkte Gegner: " + lebenspunkteGegner);
if (lebenspunkteGegner < 1) {
sieg();
} else if (lebenspunkteGegner > 0) {
int monsterDamage = 0;
monsterDamage = new java.util.Random().nextInt(4);
System.out.println("Dein Gegner greift dich an und macht " + monsterDamage + " Schaden!");
lebenspunkteHeld = lebenspunkteHeld - monsterDamage;
System.out.println("Deine Lebenspunkte: " + lebenspunkteHeld);
if (lebenspunkteHeld < 1) {
tod();
} else if (lebenspunkteHeld > 0) {
kämpfen();
}
}
}
public void tod() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du bist gestorben!!!");
System.out.println("\n\nGAME OVER");
System.out.println("\n------------------------------------------------------------------\n");
}
public void sieg() {
System.out.println("\n------------------------------------------------------------------\n");
System.out.println("Du hast deinen Gegner getötet!");
System.out.println("1: Gehe zurück zur Kreuzung");
System.out.println("\n------------------------------------------------------------------\n");
auswahl = myScanner.nextInt();
if (auswahl == 1) {
zweiteKreuzung();
} else {
sieg();
}
}
}
Zuletzt bearbeitet: