Hey, ich habe hier ein Programm vorgeschrieben gekriegt, welches ein Spiel darstellt. Darin bewegt sich eine Mondfähre oder ähnliches auf den Mond zu. Am bessten kopiere ich einfach die Beschreibung sonst wird es zu kompliziert
Mondlandung ist ein klassisches Computerspiel. Die Mondfähre startet zB. 4000m über dem mond mit einer Geschwindigkeit von 0m/s. Durch die gravitationsbeschleunigung von 1,62m/s nimmt die Geschwindigkeit jede Sekunde um diesen wert zu. Die entfernung vom Mond sinkt entsprechend. Der Spieler hat die Möglichkeit, für jede Sekunde des Anflugs die Bremsraketen mit einer Stufe von zwischen 0-10 zu aktivieren. Jede Stufe entspricht dabei einer beschleunigung von 0,4m/s in richtung vom Mond weg. maximal kann die geschwindigkeit in einer Sekunde, also um 4m/s verringert werden ( sie wächst aber gleichzeitig um 1,62m/s durch die gravitation). Der treibstoff ist allerdings begrenzt. Am Anfang enthält der tank 500l. pro Sekunde betrieb der bremsraketen wird treibstoff entsprechend der gewählten Stufe verbraucht. man könnte also max. 50sek mit stufe 10 bremsen, danach wirkt nur noch die gravitationsbeschleunigung.
ziel des spiels ist es, mit möglichst geringer geschwindigkeit auf dem Mond aufzusetzen. Das Spiel ist zu Ende, wenn die Entfernung erstmals kleiner <=0 wird.
Okay lange rede kurzer Sinn, ich soll am Ende ne bewertung ausgeben, Zum Beispiel wenn ich mit einer Geschwindigkeit von unter 5m/s aufkomme dann "Perfekte Landung".
wäre ja eigentich
if (Variable<=5)
System.out.println("Perfekt");
Klappt aber nicht, da ich gar nicht verstehe welche Variable da rein muss, kann mir jemand aushelfen?
Mondlandung ist ein klassisches Computerspiel. Die Mondfähre startet zB. 4000m über dem mond mit einer Geschwindigkeit von 0m/s. Durch die gravitationsbeschleunigung von 1,62m/s nimmt die Geschwindigkeit jede Sekunde um diesen wert zu. Die entfernung vom Mond sinkt entsprechend. Der Spieler hat die Möglichkeit, für jede Sekunde des Anflugs die Bremsraketen mit einer Stufe von zwischen 0-10 zu aktivieren. Jede Stufe entspricht dabei einer beschleunigung von 0,4m/s in richtung vom Mond weg. maximal kann die geschwindigkeit in einer Sekunde, also um 4m/s verringert werden ( sie wächst aber gleichzeitig um 1,62m/s durch die gravitation). Der treibstoff ist allerdings begrenzt. Am Anfang enthält der tank 500l. pro Sekunde betrieb der bremsraketen wird treibstoff entsprechend der gewählten Stufe verbraucht. man könnte also max. 50sek mit stufe 10 bremsen, danach wirkt nur noch die gravitationsbeschleunigung.
ziel des spiels ist es, mit möglichst geringer geschwindigkeit auf dem Mond aufzusetzen. Das Spiel ist zu Ende, wenn die Entfernung erstmals kleiner <=0 wird.
Okay lange rede kurzer Sinn, ich soll am Ende ne bewertung ausgeben, Zum Beispiel wenn ich mit einer Geschwindigkeit von unter 5m/s aufkomme dann "Perfekte Landung".
wäre ja eigentich
if (Variable<=5)
System.out.println("Perfekt");
Klappt aber nicht, da ich gar nicht verstehe welche Variable da rein muss, kann mir jemand aushelfen?
Java:
// Objektorientierte Programmierung - Hausaufgabe 5
// Name:
import java.util.Scanner;
class Mondlandung {
public static void main(String[] args) {
int zeit = 0;
double entfernung = 4000;
double geschwindigkeit = 0;
int tank = 500;
final double mondbeschleunigung = 1.62;
int schub;
final int dauer = 1; // Dauer eines Zuges in s
Scanner scan = new Scanner(System.in);
// Kopfzeile der Tabelle:
System.out.format("%4s | %10s | %10s | %4s | %10s\n",
"Zeit", "Entfernung", "Geschwind.",
"Tank", "Bremsschub");
// Schleife solange nicht gelandet:
while(entfernung > 0) {
// Maximal moeglichen Schub berechnen:
int max = 10;
if(tank < 10)
max = tank;
// Daten formatiert ausgeben:
System.out.format(
"%3ds | %9.1fm | %7.1fm/s | %4d | [0..%d]> ",
zeit, entfernung, geschwindigkeit,
tank, max);
// Eingabe Bremsschub (leere Eingabe = 0):
String eingabe = scan.nextLine();
if(eingabe.equals(""))
schub = 0;
else {
schub = Integer.parseInt(eingabe);
if(schub < 0)
schub = 0;
if(schub > max)
schub = max;
}
// Neue Daten berechnen:
double beschleunigung = mondbeschleunigung
- schub * 0.4;
entfernung = entfernung
- geschwindigkeit * dauer
- 0.5 * beschleunigung *
dauer * dauer;
geschwindigkeit = geschwindigkeit +
beschleunigung * dauer;
zeit = zeit + dauer;
tank = tank - schub;
}
// Gelandet:
System.out.format("\nLandegeschwindigkeit: %7.1f m/s\n",
geschwindigkeit);
// Bewertung:
if (format %7.1fm/s<=5)
System.out.println("Perfekte Landung!");
// Graphik des Landeverlaufs ausgeben:
}
}