add javadoc documentation
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
/**
|
||||||
|
* Eine Klasse, die Ladungen eines Raumschiffs darstellt
|
||||||
|
*
|
||||||
|
* @author "Joel Baldauf"
|
||||||
|
* @version 0.2
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class Ladung {
|
public class Ladung {
|
||||||
private String bezeichnung;
|
private String bezeichnung;
|
||||||
private int menge;
|
private int menge;
|
||||||
@@ -6,6 +13,11 @@ public class Ladung {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* parametisierter Konstruktor zum Erzeugen einer Ladung
|
||||||
|
* @param bezeichnung Bezeichnung für die Ladung
|
||||||
|
* @param menge Menge der Ladung
|
||||||
|
*/
|
||||||
public Ladung(String bezeichnung, int menge) {
|
public Ladung(String bezeichnung, int menge) {
|
||||||
this.setBezeichnung(bezeichnung);
|
this.setBezeichnung(bezeichnung);
|
||||||
this.setMenge(menge);
|
this.setMenge(menge);
|
||||||
|
|||||||
@@ -1,7 +1,15 @@
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Eine Klasse, die ein Raumschiff für das Spiel "Raumschiffe" darstellt
|
||||||
|
*
|
||||||
|
* @author "Joel Baldauf"
|
||||||
|
* @version 0.2
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class Raumschiff {
|
public class Raumschiff {
|
||||||
|
|
||||||
private int photonentorpedoAnzahl;
|
private int photonentorpedoAnzahl;
|
||||||
private int energieversorgungInProzent;
|
private int energieversorgungInProzent;
|
||||||
private int schildeInProzent;
|
private int schildeInProzent;
|
||||||
@@ -12,10 +20,22 @@ public class Raumschiff {
|
|||||||
private static final ArrayList<String> broadcastKommunikator = new ArrayList<>();
|
private static final ArrayList<String> broadcastKommunikator = new ArrayList<>();
|
||||||
private final ArrayList<Ladung> ladungsverzeichnis;
|
private final ArrayList<Ladung> ladungsverzeichnis;
|
||||||
|
|
||||||
|
|
||||||
public Raumschiff() {
|
public Raumschiff() {
|
||||||
this.ladungsverzeichnis = new ArrayList<>();
|
this.ladungsverzeichnis = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* voll parametisierter Konstruktor zum Erzeugen eines Raumschiffs.
|
||||||
|
*
|
||||||
|
* @param photonentorpedoAnzahl Anzahl der in die Torpedoröhre geladenen Photonentorpedos
|
||||||
|
* @param energieversorgungInProzent Zustand der Energieversorgung des Raumschiffs in Prozent
|
||||||
|
* @param schildeInProzent Zustand der Schilde des Raumschiffs in Prozent
|
||||||
|
* @param huelleInProzent Zustand der Hülle des Raumschiffs in Prozent
|
||||||
|
* @param lebenserhaltungssystemeInProzent Zustand der Lebenserhaltungssysteme des Raumschiffs in Prozent
|
||||||
|
* @param androidenAnzahl Anzahl der für Reparaturen verfügbaren Reparaturandroiden des Schiffs
|
||||||
|
* @param schiffsname Name des Raumschiffs
|
||||||
|
*/
|
||||||
public Raumschiff(int photonentorpedoAnzahl, int energieversorgungInProzent, int schildeInProzent, int huelleInProzent, int lebenserhaltungssystemeInProzent, int androidenAnzahl, String schiffsname) {
|
public Raumschiff(int photonentorpedoAnzahl, int energieversorgungInProzent, int schildeInProzent, int huelleInProzent, int lebenserhaltungssystemeInProzent, int androidenAnzahl, String schiffsname) {
|
||||||
this.setPhotonentorpedoAnzahl(photonentorpedoAnzahl);
|
this.setPhotonentorpedoAnzahl(photonentorpedoAnzahl);
|
||||||
this.setEnergieversorgungInProzent(energieversorgungInProzent);
|
this.setEnergieversorgungInProzent(energieversorgungInProzent);
|
||||||
@@ -83,10 +103,21 @@ public class Raumschiff {
|
|||||||
this.schiffsname = schiffsname;
|
this.schiffsname = schiffsname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode, die Ladung zum Ladungsverzeichnis hinzufügt, diese also dem Raumschiff zuordnet
|
||||||
|
* @param neueLadung zum Ladungsverzeichnis hinzuzufügende Ladung
|
||||||
|
*/
|
||||||
public void addLadung(Ladung neueLadung) {
|
public void addLadung(Ladung neueLadung) {
|
||||||
this.ladungsverzeichnis.add(neueLadung);
|
this.ladungsverzeichnis.add(neueLadung);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode zum Abschießen eines Photonentorpedos
|
||||||
|
* Gibt es keine Torpedos, so wird als Nachricht an Alle -=*Click*=- ausgegeben.
|
||||||
|
* Ansonsten wird die Torpedoanzahl um eins reduziert und die Nachricht an Alle Photonentorpedo abgeschossen gesendet. Außerdem wird die Methode Treffer aufgerufen.
|
||||||
|
* @param r Das Raumschiff, welches vom Torpedo getroffen werden soll
|
||||||
|
*/
|
||||||
public void photonentorpedoSchiessen(Raumschiff r) {
|
public void photonentorpedoSchiessen(Raumschiff r) {
|
||||||
if (this.getPhotonentorpedoAnzahl() == 0) {
|
if (this.getPhotonentorpedoAnzahl() == 0) {
|
||||||
nachrichtAnAlle("-=*Click*=-");
|
nachrichtAnAlle("-=*Click*=-");
|
||||||
@@ -97,6 +128,12 @@ public class Raumschiff {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode zum Abschießen einer Phaserkanone
|
||||||
|
* Ist die Energieversorgung kleiner als 50%, so wird als Nachricht an Alle -=*Click*=- ausgegeben.
|
||||||
|
* Ansonsten wird die Energieversorgung um 50% reduziert und die Nachricht an Alle “Phaserkanone abgeschossen” gesendet. Außerdem wird die Methode Treffer aufgerufen.
|
||||||
|
* @param r @param r Das Raumschiff, welches von der Phaserkanone getroffen werden soll
|
||||||
|
*/
|
||||||
public void phaserkanoneSchiessen(Raumschiff r) {
|
public void phaserkanoneSchiessen(Raumschiff r) {
|
||||||
if (this.getEnergieversorgungInProzent() < 50) {
|
if (this.getEnergieversorgungInProzent() < 50) {
|
||||||
nachrichtAnAlle("-=*Click*=-");
|
nachrichtAnAlle("-=*Click*=-");
|
||||||
@@ -107,6 +144,14 @@ public class Raumschiff {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode, die aufgerufen wird, wenn ein Raumschiff getroffen wurde.
|
||||||
|
* Es wird eine entsprechende Nachricht in der Konsole ausgegeben.
|
||||||
|
* Die Schilde werden um 50% geschwächt
|
||||||
|
* Sollte anschließend die Schilde vollständig zerstört worden sein, so wird der Zustand der Hülle und der Energieversorgung jeweils um 50% abgebaut.
|
||||||
|
* Sollte danach der Zustand der Hülle auf 0% absinken, so sind die Lebenserhaltungssysteme vollständig zerstört und es wird eine Nachricht an Alle ausgegeben, dass die Lebenserhaltungssysteme vernichtet worden sind.
|
||||||
|
* @param r @param r "Das Raumschiff, welches getroffen wurde"
|
||||||
|
*/
|
||||||
private void treffer(Raumschiff r) {
|
private void treffer(Raumschiff r) {
|
||||||
System.out.println(r.getSchiffsname() + " wurde getroffen!\n");
|
System.out.println(r.getSchiffsname() + " wurde getroffen!\n");
|
||||||
|
|
||||||
@@ -127,14 +172,27 @@ public class Raumschiff {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode, die eine Nachricht an alle in den BroadcastKommunikator einfügt
|
||||||
|
* Die gesammelten Nachrichten können später über die Methode {@link #eintraegeLogbuchZurueckgeben()} zurückgegeben werden.
|
||||||
|
* @param message In den BroadcastKommunikator einzutragende Nachricht
|
||||||
|
*/
|
||||||
public void nachrichtAnAlle(String message) {
|
public void nachrichtAnAlle(String message) {
|
||||||
broadcastKommunikator.add(this.schiffsname + ": " + message);
|
broadcastKommunikator.add(this.schiffsname + ": " + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Liste der Nachrichten, die an alle gesendet wurden
|
||||||
|
*/
|
||||||
public ArrayList<String> eintraegeLogbuchZurueckgeben() {
|
public ArrayList<String> eintraegeLogbuchZurueckgeben() {
|
||||||
return broadcastKommunikator;
|
return broadcastKommunikator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode, um Torpedos von den Ladungen in die Torpedoröhre zu laden.
|
||||||
|
* @param anzahlTorpedos Anzahl der zu ladenen Torpedos. Wenn größer angeben als verfügbar, so werden alle verfügbaren genutzt.
|
||||||
|
*/
|
||||||
public void photonentorpedosLaden(int anzahlTorpedos) {
|
public void photonentorpedosLaden(int anzahlTorpedos) {
|
||||||
if (this.ladungPhotonentorpedosAnzahl() == 0) {
|
if (this.ladungPhotonentorpedosAnzahl() == 0) {
|
||||||
System.out.println("Keine Photonentorpedos gefunden!");
|
System.out.println("Keine Photonentorpedos gefunden!");
|
||||||
@@ -151,6 +209,13 @@ public class Raumschiff {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode, um Reparaturen am Raumschiff durchzuführen und so dessen Zustand zu verbessern
|
||||||
|
* @param schutzschilde true repariert die Schutzschilde, false repariert sie nicht
|
||||||
|
* @param energieversorgung true repariert die Energieversorgung, false repariert sie nicht
|
||||||
|
* @param schiffshuelle true repariert die Schiffshülle, false repariert sie nicht
|
||||||
|
* @param anzahlDroiden Anzahl der für die Reparatur einzusetzenden Androiden. Wenn mehr als verfügbar angegeben, werden alle verfügbaren genutzt.
|
||||||
|
*/
|
||||||
public void reparaturDurchfuehren(boolean schutzschilde, boolean energieversorgung, boolean schiffshuelle, int anzahlDroiden) {
|
public void reparaturDurchfuehren(boolean schutzschilde, boolean energieversorgung, boolean schiffshuelle, int anzahlDroiden) {
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
int zufallszahl = random.nextInt(100);
|
int zufallszahl = random.nextInt(100);
|
||||||
@@ -175,6 +240,9 @@ public class Raumschiff {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den aktuellen Zustand (also alle Attribute) des Raumschiffs auf der Konsole aus
|
||||||
|
*/
|
||||||
public void zustandRaumschiff() {
|
public void zustandRaumschiff() {
|
||||||
System.out.println("Schiffsname: " + this.schiffsname);
|
System.out.println("Schiffsname: " + this.schiffsname);
|
||||||
System.out.println("photonentorpedoAnzahl: " + this.photonentorpedoAnzahl);
|
System.out.println("photonentorpedoAnzahl: " + this.photonentorpedoAnzahl);
|
||||||
@@ -186,6 +254,9 @@ public class Raumschiff {
|
|||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt das Ladungsverzeichnis, also alle dem Raumschiff zugeordneten Ladungen auf der Konsole aus.
|
||||||
|
*/
|
||||||
public void ladungsverzeichnisAusgeben() {
|
public void ladungsverzeichnisAusgeben() {
|
||||||
System.out.println("Ladungen des Raumschiffs " + this.schiffsname);
|
System.out.println("Ladungen des Raumschiffs " + this.schiffsname);
|
||||||
System.out.println("============================================");
|
System.out.println("============================================");
|
||||||
@@ -197,10 +268,18 @@ public class Raumschiff {
|
|||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode, die alle Ladungsobjekte mit einer Menge gleich 0 aus dem Ladungsverzeichnis entfernt
|
||||||
|
*/
|
||||||
public void ladungsverzeichnisAufraeumen() {
|
public void ladungsverzeichnisAufraeumen() {
|
||||||
ladungsverzeichnis.removeIf(ladung -> ladung.getMenge() == 0);
|
ladungsverzeichnis.removeIf(ladung -> ladung.getMenge() == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* zusätzlich zur Aufgabenstellung implementierte Methode, die alle verfügbaren Photonentorpedos im Ladungsverzeichnis zählt
|
||||||
|
* (auch für den Fall wenn bspw. mehrere Einzelladungen verfügbar sind)
|
||||||
|
* @return Anzahl aktuell insgesamt verfügbarer Photonentorpedos im Ladungsverzeichnis
|
||||||
|
*/
|
||||||
public int ladungPhotonentorpedosAnzahl() {
|
public int ladungPhotonentorpedosAnzahl() {
|
||||||
int anzahl = 0;
|
int anzahl = 0;
|
||||||
for (Ladung ladung : this.ladungsverzeichnis) {
|
for (Ladung ladung : this.ladungsverzeichnis) {
|
||||||
@@ -209,6 +288,12 @@ public class Raumschiff {
|
|||||||
return anzahl;
|
return anzahl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* zusätzlich zur Aufgabenstellung implementierte Methode, die in die Torpedoröhre geladene Torpedos im Gegenzug aus den Ladungsobjekten entfernt bzw. diesen abzieht
|
||||||
|
* wird von {@link #photonentorpedosLaden(int)} aufgerufen
|
||||||
|
* @param anzahl wie viele Photonentorpedos aus dem Ladungsverzeichnis entfernt werden sollen
|
||||||
|
*/
|
||||||
public void ladungPhotonentorpedoVermindern(int anzahl) {
|
public void ladungPhotonentorpedoVermindern(int anzahl) {
|
||||||
int tempToRemove;
|
int tempToRemove;
|
||||||
for (Ladung ladung : this.ladungsverzeichnis) {
|
for (Ladung ladung : this.ladungsverzeichnis) {
|
||||||
|
|||||||
@@ -1,4 +1,16 @@
|
|||||||
|
/**
|
||||||
|
* Testklasse zum Überprüfen der Funktionalität des Raumschiffs sowie der Ladungen
|
||||||
|
*
|
||||||
|
* @author "Joel Baldauf"
|
||||||
|
* @version 0.2
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class Test {
|
public class Test {
|
||||||
|
/**
|
||||||
|
* Hauptprogramm.
|
||||||
|
*
|
||||||
|
* @param args Kommandozeilenparameter
|
||||||
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Raumschiff klingonen = new Raumschiff(
|
Raumschiff klingonen = new Raumschiff(
|
||||||
1,
|
1,
|
||||||
|
|||||||
Reference in New Issue
Block a user