Schleifen um abzufragen, ob der Spieler "tot" ist

Maxi2506

Mitglied
Hallo Leute 🙂

Ich habe in Informatik dieses Jahr mit Java angefangen und mein Lehrer verlangt nun von uns, uns ein Programm auszudenken und das dann als Klausurersatzleistung abzugeben. Also habe ich mir jetzt ausgedacht, ich könnte ja ein Spiel entwickeln, das ähnlich dem "Überlebenskampf" in CoD ist. Dass man also in mehreren Wellen gegen verschiedene Monster kämpft und schaut wie lange man überlebt. Mir ist natürlich klar, dass ich keinesfalls mit großer Grafik das Spiel erstellen kann. Deshalb habe ich das ganze auch als Textadventure gestaltet.
Das war jetzt wahrscheinlich viel zu viel Vorgeplänkle aber egal 😀
Meine eigentliche Frage ist jetzt, wie und ob ich es allein mit Schleifen packe, dass nach jeder Welle abgefragt wird, ob der Spieler noch leben hat oder nicht, damit man halt, falls er "tot" ist, sowas wie: "Du bist leider gestorben." ausgeben kann.

Mein bisheriger Java_Code ist:
Java:
	public static void main(String[] args){
		
		double hero_bonus_att = Math.random()*10;
		int hero_att1 = (int) hero_bonus_att + 10;
		double hero_bonus_life = Math.random()*100;
		int hero_life1 = (int) hero_bonus_life +100;
		
		double enemy_bonus_att = Math.random()*5;
		double enemy_att2 = (int) enemy_bonus_att + 2;
		double enemy_bonus_life = Math.random()*5;
		double enemy_life2 = (int) enemy_bonus_life +20;	
		
		System.out.println("Willkommen bei *Name des Spiels*");
		System.out.println("Bitte geben sie Ihren Namen ein:");
		
		Scanner name = new Scanner(System.in);
		String name1 = name.next();
		
		System.out.println("Gut, "+ name1+".");
		System.out.println("Wie schwer soll das Spiel sein? Sie können wählen von 1-10");
		
		Scanner level = new Scanner(System.in);
		int level1 = level.nextInt();
		
		System.out.println("Nun sind alle Vorbereitungen abgeschlossen, "+name1+".");
		System.out.println("Sie werden also in dieser Runde ein Spiel der Schwierigkeit "+level1+" spielen");
		System.out.println("Dann fangen wir nun an!");
		
		double level_bonus = 1;
		
		switch(level1){
		case 1: break; 
		case 2: level_bonus = 1.3;
				break;
		case 3: level_bonus = 1.6;
				break;
		case 4: level_bonus = 1.9;
				break;
		case 5: level_bonus = 2.2;
				break;
		case 6: level_bonus = 2.5;
				break;
		case 7: level_bonus = 2.8;
				break;
		case 8: level_bonus = 3.1;
				break;
		case 9: level_bonus = 3.4;
				break;
		case 10: level_bonus = 4;
				break;
		default: System.out.println("Error: Wrong value used. Please use a value between 1 and 10.");
				break;
		}
		
		enemy_life2 = enemy_life2*level_bonus;
		enemy_att2 = enemy_att2*level_bonus;
		int enemy_life1 = (int) enemy_life2;
		int enemy_att1 = (int) enemy_att2;
		
		
		}

		
	}

Ich hoffe der Code und meine Frage sind verständlich ???:L

Liebe Grüße
Maxi2506
 
@Maxi2506:
Dein bisheriger Code hat noch nicht wirklich Format :rtfm:
Also 1. solltest du die Spiellogik mal genauer erklären :bahnhof:
und 2. deinen Code bereits etwas strukturieren, also die Methoden gliedern, etc. 😛opcorn:
 
du fügst eine boolean variable beim player ein die den tod darstellt ist sie auf true wirt in deiner update methode dann diese angehalten und ein string gezeichnet
 
allein mit schleifen bekommst du das nicht hin, brauchst auch if anweisungen oder whileschleifen, mit denen kannst das hinbekommen

while(Spieler.getTod() ==false){
kämpfe();
}
 
Also ich würde mal mit einem Gameloop anfangen bevor ich über den Tod des Spielers nachdenke ???:L

Und dann stimme ich Robin zu, bitte gliedere deinen Code. Du benutzt eine OO-Programmiersprache, dann benutz sie auch dementsprechend und erstelle Klassen für Spieler, Karte, etc...
Und versuche Methoden zu erstellen wie etwa getLevelBonus().

Wenn du alles in eine Methode oder gar Klasse klatschst, hast du bei spätestens bei 1500 Zeilen keinen Durchblick mehr, wo du was eigentlich mal machen wolltest. Dann hast du keine Lust mehr und wirfst alles hin. Darüberhinaus werden dir die Leute hier mit einem besseren Code auch eher und schneller helfen können, da niemand bereit ist siche eine Methode von 1000 Zeilen reinzuziehen :bloed:

mfg Thunder
 
Zuletzt bearbeitet:

Zurück
Oben