merlin123
Lt. Commander
- Registriert
- Jan. 2018
- Beiträge
- 1.832
Hallo Zusammen!
Ich bin im Moment dabei ein Textadventure in Java zu programmieren und stoße im Moment auf einige Probleme.
Folgendes stelle ich mir vor:
Man hat eine Ausgabe mit verschiedenen Antwortmöglichkeiten das den Spielfluss beinflusst.
Eine Extramethode die nur für den Kampf zuständig ist, ist bereits in Arbeit.
Spieler und Gegner greifen sich gegenseitig an, dabei hat der Spieler die Möglichkeit zwischen 1/2/3 Möglichkeiten zu entscheiden um den Ablauf zu gestalten.
Ich würde mir wünschen das man durch verschiedene Gegenstände seine Angriffsstärke sowie defensive steigen kann. Diese werden vom Gegner fallen gelassen (zufällig?) und automatisch aufgerüstet. Man hat die Möglichkeit sich zu heilen und Tränke zu erhalten.
1. Meine Frage wäre, wie ich es schaffe ein Textadventure mit einer fortlaufenden Handlung und ein "Kampfsystem" miteinander zu verknüpfen?
Meine Überlegung dazu wäre das Hauptspiel mit Erzählungen und Entscheidungsmöglichkeiten in eine Main Methode zu packen das dann immer auf die Methode "Kampf" zugreift falls es zu einem Konflikt kommt. Leider habe ich keinerlei Ahnung ,ob das was ich mir denke überhaupt so möglich ist oder ob man es anders macht.
2. Ich habe bisher ein Auswahlsystem im Kampfmodus erstellt, aber falls die Lebenspunkte den Stand 0 erreichen rechnet das Programm immernoch weiter in den negativen Bereich. Ein Ende gibt es bisher nicht.
3. Wie verlasse ich eine Kampfsituation und fahre dann mit den Auswahlmöglichkeiten fort? Vorgestellt hatte ich mir das mit einer Ausgabe die in etwa lautet "Du fliehst in Schande". Aber Woher weiß das Programm das es wieder in der Hauptmethode ist? Anders gesagt was macht das Programm nach einem Kampf?
Hier mal mein Code :/
Ich bin im Moment dabei ein Textadventure in Java zu programmieren und stoße im Moment auf einige Probleme.
Folgendes stelle ich mir vor:
Man hat eine Ausgabe mit verschiedenen Antwortmöglichkeiten das den Spielfluss beinflusst.
Eine Extramethode die nur für den Kampf zuständig ist, ist bereits in Arbeit.
Spieler und Gegner greifen sich gegenseitig an, dabei hat der Spieler die Möglichkeit zwischen 1/2/3 Möglichkeiten zu entscheiden um den Ablauf zu gestalten.
Ich würde mir wünschen das man durch verschiedene Gegenstände seine Angriffsstärke sowie defensive steigen kann. Diese werden vom Gegner fallen gelassen (zufällig?) und automatisch aufgerüstet. Man hat die Möglichkeit sich zu heilen und Tränke zu erhalten.
1. Meine Frage wäre, wie ich es schaffe ein Textadventure mit einer fortlaufenden Handlung und ein "Kampfsystem" miteinander zu verknüpfen?
Meine Überlegung dazu wäre das Hauptspiel mit Erzählungen und Entscheidungsmöglichkeiten in eine Main Methode zu packen das dann immer auf die Methode "Kampf" zugreift falls es zu einem Konflikt kommt. Leider habe ich keinerlei Ahnung ,ob das was ich mir denke überhaupt so möglich ist oder ob man es anders macht.
2. Ich habe bisher ein Auswahlsystem im Kampfmodus erstellt, aber falls die Lebenspunkte den Stand 0 erreichen rechnet das Programm immernoch weiter in den negativen Bereich. Ein Ende gibt es bisher nicht.
3. Wie verlasse ich eine Kampfsituation und fahre dann mit den Auswahlmöglichkeiten fort? Vorgestellt hatte ich mir das mit einer Ausgabe die in etwa lautet "Du fliehst in Schande". Aber Woher weiß das Programm das es wieder in der Hauptmethode ist? Anders gesagt was macht das Programm nach einem Kampf?
Hier mal mein Code :/
Java:
package textadventuretime;
import java.util.Random; //importe
import java.util.Scanner; //importe
public class textadventuretime {
public static void main(String[] args) {
//Spiel Objekte
Scanner in = new Scanner(System.in); // Tastatureingabe
Random rand = new Random(); // gibt zufaellige Zahlen aus, wichtig fuer das Array
//Variablen des Spieles
String[] Gegner = {"Skelett", "Baer", "alte Hexe", "Schlange"}; // wird in Array angelegt sodass man ein Pool hat aus dem Gegner zufällig gewählt werden
int maxGegnerLeben = 100; // soviel Leben kann ein Gegner Maximal haben
int GegnerSchaden = 10; // soviel macht jeder Gegner an Schaden
//Variablen des Spielers
int maxLeben = 150; //maximales Leben des Spielers
int AngriffsSchaden = 25; // 25 Schaden pro Zug
int Heiltrank = 15; // 15 Einheiten an Heilung
int HeiltrankHeilung = 30; // Heilungseffekt pro Trank
int HeiltrankDropChance = 50; // stellt Prozentzahl dar wie oft ein Trank erhalten werden kann
boolean rennen = true; // Spiel lädt solange weiter bis man es selbst stoppt
System.out.println("Wilkommen in der Gruft"); // Begruessungstext des Spieles
GAME: // while loop wird mit einem label versehen, sodass man nur GAME eingibt um die whileschleife aufzurufen
while (rennen) {
System.out.println("------------------------------------");
// Das Leben des Gegners wird zufaellig ausgegeben, aber nicht ueber das Maximum
int enemyHealth = rand.nextInt(maxGegnerLeben);
String enemy = Gegner[rand.nextInt(Gegner.length)]; // Gegner wird aus Array zufällig ausgelesen mit .length zwischen 0 und max länge des array
System.out.println("\t# " + enemy + " erscheint! #\n");
while (enemyHealth > 0) {
System.out.println("\tDeine HP: " + maxLeben);
System.out.println("\t" + enemy + "'s HP: " + maxGegnerLeben);
System.out.println("\n\t Was willst du tun?");
System.out.println("\t1. Eins ueber die Ruebe hauen");
System.out.println("\t2. Eine Runde chillen");
System.out.println("\t3. Wegrennen wie ein Feigling?");
System.out.println("------------------------------------");
/*Hier wird eine Eingabe vom Spieler verlangt mit den Tasten
1/2/3 die verschiedene Handlungen ausführen*/
String input = in.nextLine();
//2 Variabeln bei Angriff, geben zufälligen Schaden an
if (input.equals("1")) {
int SchadenAusgeteilt = rand.nextInt(AngriffsSchaden);
int SchadenGenommen = rand.nextInt(GegnerSchaden);
//Hier wird der Schaden vom Leben des Gegners abgezogen
maxGegnerLeben -= SchadenAusgeteilt;
// Hier wird der Schaden vom Leben des Spielers abgezogen
maxLeben -= GegnerSchaden;
// Ausgabe des Angriffsvorganges
System.out.println("\t> Der Gegner " + enemy + " erleidet Schaden mit dem Wert " + SchadenAusgeteilt + " Schadenspunkte.");
System.out.println("\t> Du erleidest " + SchadenGenommen + " als Konter");
// Bei erreichen von 0 Lebenspunkten
if (maxLeben < 1) {
System.out.println("\t> Deine Lebenspunkte sind verbraucht.");
break; // befördert einen aus der if Schleife heraus
}
} else if (input.equals("2")) {
} else if (input.equals("3")) {
} // Bei falscher Eingabe wird wieder in die whileSchleife gesprungen
else {
}
}// Bei Game over wird dieser Text ausgegeben
System.out.println("Du stirbst an deinen Verletzungen");
}
}
}