Hallo, ich bin jetzt über meinen letzten Fehler hinweggekommen ( Ich habe statt println immer printIn geschrieben, danke nochmal ), aber jetzt brauche ich erneut Hilfe. Ich habe diesmal keine Compilerfehler oder so etwas, habe aber ein kleines Textadventure geschrieben/angefangen, dass ich noch um ein paar Sachen erweitern will, damit es auch etwas spannend ist. Bisweilen bin ich so weit gekommen:
Der Code ist schon etwas länger, ich hoffe ihr könnt ihn euch 5 Minuten durchlesen.
Ich erkläre kurz:Am Anfang kann man Links oder Rechts gehen, dann bekommt man entweder eine Truhe mit Geld oder der Kampf gegen ein Monster beginnt.
Und da würde ich gerne wissen, wie man von der Zeile
bis
einen Loop macht, damit der Kampf rundenbasiert abläuft. (Es wird solange wiederholt, bis die Datei merkt dass lifeMonster kleiner als Null ist.)
Am besten mit Code posten
Der Code ist schlecht, bin immer noch ein Anfänger
Ich würde ansonsten noch gerne wissen;
- gibt es eine andere Möglichkeit ausser Math.random, eine zufällige Zahl zu generieren, denn Math.random nutzt ja soweit ich weiss immer double und generiert Kommazahlen. Wie macht man Nicht-Kommazahlen?
- und selbst wenn ich einen Loop einbauen würde, wie kann ich es dann schaffen, dass bei jeden Runde ein neuer Monster- und Spielerangriffsschaden generiert wird?
Wenn ihr mir helfen könnt, danke, ansonsten... Ich habe es etwas kompliziert geschrieben :/
Java:
public class TextAdventure
{
public static void main(String[] args)
{
double money = 5; double life = 100; byte level = 1; double treasureRandom = Math.random() * 10;
byte runaway1 = 1; byte fight1 = 2;
System.err.println("STATUS");
System.out.println("LEVEL: " + level);
System.out.println("LEBEN: " + life);
System.out.println("GOLD: " + money);
System.out.println();
System.out.println("Du bist auf einer Weggabelung. Richtung 1 oder 2?");
int directionChoose1 = new java.util.Scanner(System.in).nextInt();
if(directionChoose1 == 1)
{
System.out.println();
System.out.println("Ein Monster erscheint!");
System.out.println("Willst du 1: Wegrennen oder 2: Kämpfen?");
byte chooseOption = new java.util.Scanner(System.in).nextByte();
if(chooseOption == 1)
{
System.out.println();
System.out.println("Du bist geflüchtet. Spiel zuende.");
}
if(chooseOption == 2)
{
double lifeMonster = 10;
System.out.println();
System.out.println("Der Kampf beginnt!");
if(lifeMonster > 0)
{
double attackMonster1 = Math.random() * 10;
System.out.println();
System.out.println("1: Angreifen");
double attack1 = Math.random() * 10;
System.out.printf("Du erzielst %s Schadenspunkte%n", attack1);
lifeMonster -= attack1;
System.out.printf("Dem Monster verbleiben %s Lebenspunkte!%n", lifeMonster);
life -= attackMonster1;
System.out.printf("Das Monster greift an und verursacht %s Schadenspunkte!%n", attackMonster1);
System.out.printf("Dir verbleiben %s Lebenspunkte.%n", life);
System.out.println("Gib 'next' ein, um fortzufahren.");
String randomType = new java.util.Scanner(System.in).nextLine();
if(lifeMonster > 0)
{
double attackMonster2 = Math.random() * 10;
System.out.println();
System.out.println("1: Angreifen");
double attack2 = Math.random() * 10;
System.out.printf("Du erzielst %s Schadenspunkte%n", attack1);
lifeMonster -= attack2;
System.out.printf("Dem Monster verbleiben %s Lebenspunkte!%n", lifeMonster);
life -= attackMonster2;
System.out.printf("Das Monster greift an und verursacht %s Schadenspunkte!%n", attackMonster2);
System.out.printf("Dir verbleiben %s Lebenspunkte.%n", life);
}
if(lifeMonster < 0)
{
System.out.println();
System.out.println("Monster wurde besiegt! Glückwunsch!");
}
}
}
}
if(directionChoose1 == 2)
{
System.out.println();
System.out.println("Du findest eine Schatztruhe!");
money += treasureRandom;
System.out.printf("Du hast %s Gold gefunden! Du hast nun %s Gold!%n", treasureRandom, money);
}
}
}
Der Code ist schon etwas länger, ich hoffe ihr könnt ihn euch 5 Minuten durchlesen.
Ich erkläre kurz:Am Anfang kann man Links oder Rechts gehen, dann bekommt man entweder eine Truhe mit Geld oder der Kampf gegen ein Monster beginnt.
Und da würde ich gerne wissen, wie man von der Zeile
Java:
if(lifeMonster > 0)
Java:
if(lifeMonster < 0)
{
System.out.println();
System.out.println("Monster wurde besiegt! Glückwunsch!");
}
einen Loop macht, damit der Kampf rundenbasiert abläuft. (Es wird solange wiederholt, bis die Datei merkt dass lifeMonster kleiner als Null ist.)
Am besten mit Code posten
Der Code ist schlecht, bin immer noch ein Anfänger
Ich würde ansonsten noch gerne wissen;
- gibt es eine andere Möglichkeit ausser Math.random, eine zufällige Zahl zu generieren, denn Math.random nutzt ja soweit ich weiss immer double und generiert Kommazahlen. Wie macht man Nicht-Kommazahlen?
- und selbst wenn ich einen Loop einbauen würde, wie kann ich es dann schaffen, dass bei jeden Runde ein neuer Monster- und Spielerangriffsschaden generiert wird?
Wenn ihr mir helfen könnt, danke, ansonsten... Ich habe es etwas kompliziert geschrieben :/