Tracks
/
Java
Java
/
Übungen
/
Logbuch des Kapitäns
Logbuch des Kapitäns

Logbuch des Kapitäns

Lernübung

Einführung

Zufall

Mit einer Instanz der Klasse java.util.Random kannst du in Java Zufallszahlen erzeugen.

Zufällige Ganzzahlen

Eine zufällige Ganzzahl kannst du mit der Methode nextInt() erzeugen. Das erzeugt einen Wert im Bereich von Integer.MIN_VALUE bis Integer.MAX_VALUE.

Random random = new Random();

random.nextInt();
// => -1169335537

Um den Bereich der erzeugten Werte einzuschränken, verwende nextInt(int). Das erzeugt einen Wert im Bereich von 0 (einschließlich) bis zur angegebenen Obergrenze (ausschließlich).

Zum Beispiel erzeugt dies eine Zufallszahl von 0 bis 9.

Random random = new Random();

random.nextInt(10);
// => 6

Und dies erzeugt eine Zufallszahl von 10 bis 19.

Random random = new Random();

10 + random.nextInt(10);
// => 11

Zufällige Gleitkommazahlen

Eine zufällige Gleitkommazahl kannst du mit der Methode nextDouble() erzeugen. Das erzeugt einen Wert im Bereich von 0.0 bis 1.0.

Random random = new Random();

random.nextDouble();
// => 0.19250004204021398

Und dies erzeugt eine Zufallszahl von 100.0 bis 200.0.

Random random = new Random();

100.0 + 100.0 * random.nextDouble();
// => 111.31849856260328

Anleitung

Mary ist ein großer Fan der TV-Serie Star Trek: The Next Generation. Sie spielt oft Pen-&-Paper-Rollenspiele, bei denen sie und ihre Freunde in die Rollen der Crew der Starship Enterprise schlüpfen. Marys Figur ist Captain Picard, was bedeutet, dass sie das Logbuch des Captains führen muss. Sie liebt den kreativen Teil des Spiels, mag es aber nicht, spontan Zufallsdaten zu erzeugen.

Hilf Mary, indem du Zufallsgeneratoren für Daten erstellst, die häufig im Logbuch des Captains vorkommen.

Note

Die Startimplementierung dieser Übung nimmt eine Instanz von java.util.Random als Konstruktorargument entgegen. Dadurch können die Tests der Übung eine Instanz mit einem vorgegebenen Seed übergeben, wodurch die Testergebnisse vorhersagbar werden.

Deshalb solltest du die bereitgestellte Instanz von java.util.Random in deiner Implementierung verwenden.

1. Erzeuge einen zufälligen Planeten

Die Starship Enterprise trifft auf ihren Reisen auf viele Planeten. Planeten im Star-Trek-Universum werden anhand ihrer Eigenschaften in Kategorien eingeteilt. Die Erde zum Beispiel ist ein Planet der Klasse M. Alle möglichen Planetenklassen sind: D, H, J, K, L, M, N, R, T und Y.

Implementiere die Methode randomPlanetClass(). Sie soll zufällig eine der Planetenklassen zurückgeben.

captainsLog.randomPlanetClass();
// => "K"

2. Erzeuge eine zufällige Registriernummer eines Raumschiffs

Die Enterprise (Registriernummer NCC-1701) ist nicht das einzige Raumschiff, das durchs All fliegt! Wenn sie sich mit einem anderen Raumschiff trifft, muss Mary dessen Registriernummer im Logbuch festhalten.

Registriernummern beginnen mit dem Präfix „NCC-" und enthalten danach eine Zahl von 1000 bis 9999 (einschließlich).

Implementiere die Methode randomShipRegistryNumber(), die eine zufällige Registriernummer eines Raumschiffs zurückgibt.

captainsLog.randomShipRegistryNumber();
// => "NCC-1947"

3. Erzeuge eine zufällige Sternzeit

Was nützt ein Logbuch ohne Datumsangaben?

Eine Sternzeit ist eine Gleitkommazahl. Die Abenteuer der Starship Enterprise aus der ersten Staffel von The Next Generation spielen zwischen den Sternzeiten 41000.0 und 42000.0. Die „4" steht für das 24. Jahrhundert, die „1" für die erste Staffel.

Implementiere die Methode randomStardate(), die eine Gleitkommazahl zwischen 41000.0 (einschließlich) und 42000.0 (ausschließlich) zurückgibt.

captainsLog.randomStardate();
// => 41458.15721310934
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Java Exercism

Bereit, mit Logbuch des Kapitäns zu starten?

Melde dich bei Exercism an, um Java mit 26 Konzepte158 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.