Added more Javadoc (TODOs) comments.

This commit is contained in:
Joshua 2024-12-17 16:42:50 +01:00
parent 10e5a8ef5e
commit 42fc341608
12 changed files with 56 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import java.util.List;
/**
* Dient dem Aufbau der Matrix (Spielfeld) und füllt diese mit Funktion
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public class BoardDisplay extends JPanel {
private JButton[][] fields;
@ -21,6 +22,7 @@ public class BoardDisplay extends JPanel {
/**
* Fügt Buttons zu Liste hinzu und aktualisiert Feld durch Aufruf von paintFields
* @param button
* @author Joshua Kuklok
*/
public void addShipButton(ShipButton button) {
shipButtonList.add(button);
@ -30,6 +32,7 @@ public class BoardDisplay extends JPanel {
/**
* Gibt currentShip zurück
* @return currentShip
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public Ship getCurrentShip() {
return currentShip;
@ -111,6 +114,7 @@ public class BoardDisplay extends JPanel {
/**
* Aktuelles Schiff auswählen
* @param ship Schiff zum Auswählen
* @author Lucas Bronson, Joshua Kuklok
*/
public void selectCurrentShip(Ship ship) {
this.currentShip = ship;
@ -120,6 +124,7 @@ public class BoardDisplay extends JPanel {
/**
* Zurücksetzen von aktuellem Schiff und allen Schiffen des Spielers.
* Danach blau färben des Spielfeldes
* @author Lucas Bronson, Joshua Kuklok
*/
public void resetAllShips() {
this.currentShip = null;
@ -131,6 +136,7 @@ public class BoardDisplay extends JPanel {
/**
* Wechselt die Platzierungsrichtung zwischen horizontal und vertikal.
* @author Lucas Bronson, Joshua Kuklok
*/
private void togglePlacementDirection() {
horizontal = !horizontal;
@ -142,6 +148,7 @@ public class BoardDisplay extends JPanel {
/**
* Handhabt das Platzieren eines Schiffs auf dem Spielfeld.
* @param o Die Koordinaten des Klicks.
* @author Lucas Bronson, Luca Conte
*/
private void handleFieldClick(Point o) {
System.out.println("CLICK " + o);
@ -159,6 +166,7 @@ public class BoardDisplay extends JPanel {
* Färbt eine Preview in das Spielfeld ein, ob Schiff setzen möglich ist
* Schiffe die gesetzt wurden, werden grau gefärbt
* Aufrufen von refreshButtonState um zu zeigen, ob Button drückbar ist
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public void paintFields() {
List<Point> test=new ArrayList<>();
@ -236,6 +244,7 @@ public class BoardDisplay extends JPanel {
/**
* Ruft paintFields auf, um Felder zu aktualisieren
* @author Luca Conte
*/
public void refresh() {
paintFields();

View File

@ -7,6 +7,7 @@ import java.util.List;
/**
* Das GameBoard dient als Panel, in dem das tatsächliche Spiel stattfindet.
* Der Benutzer kann hier seine Schiffe platzieren, das Spiel starten etc.
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public class GameBoard extends JPanel {
@ -45,6 +46,7 @@ public class GameBoard extends JPanel {
* @param semesterCounter Ausgewähltes Semester
* @param p1 Erstes Spielerobjekt
* @param p2 Zweites Spielerobjekt
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
GameBoard(MainFrame frame, int semesterCounter,Player p1, Player p2) {
this.p1 = p1;
@ -90,6 +92,7 @@ public class GameBoard extends JPanel {
* Baut das grundlegende Spielboard
* @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden.
* @param semesterCounter Ausgewähltes Semester
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public void buildPanel(MainFrame frame, int semesterCounter) {
// Hauptlayout - BorderLayout für die Anordnung der Komponenten
@ -198,6 +201,7 @@ public class GameBoard extends JPanel {
/**
* Aktualisiert Zustand(kontextText) je nach Zug
* @author Luca Conte
*/
public void refresh() {
if (this.p1.myTurn) {

View File

@ -1,5 +1,6 @@
/**
* Hauptklasse über die der MainFrame gestartet wird
* @author Lucas Bronson, Ole Wachtel, Joshua Kuklok
*/
public class HalloSchiffeVersenken {

View File

@ -8,6 +8,7 @@ import java.net.InetSocketAddress;
/**
* Das JoinGame Panel dient zum setzten des Ports/IP-Adresse.
* Anschließend kann das Verbinden Panel gezeigt werden.
* @author Lucas Bronson, Joshua Kuklok
*/
public class JoinGame extends JPanel {
@ -36,6 +37,7 @@ public class JoinGame extends JPanel {
* @param g int-Anzeige, ob es sich um "spiel erstellen" oder "spiel beitreten" handelt.
* @param playerType int-Anzeige, ob es sich um einen HumanPlayer,AIEasy... handelt.
* @param playerName Name des Spielers
* @author Lucas Bronson, Joshua Kuklok
*/
public JoinGame(MainFrame frame,int g,int playerType,String playerName) {
setLayout(null);
@ -48,6 +50,7 @@ public class JoinGame extends JPanel {
* @param g int-Anzeige, ob es sich um "spiel erstellen" oder "spiel beitreten" handelt.
* @param playerType int-Anzeige, ob es sich um einen HumanPlayer,AIEasy... handelt.
* @param playerName Name des Spielers
* @author Lucas Bronson, Joshua Kuklok
*/
private void buildPanel(MainFrame frame,int g,int playerType,String playerName) {
if(g==1){

View File

@ -6,10 +6,12 @@ import java.awt.*;
* win/lose screen (aufruffunktion für backend)
* author annotation einfügen
* Actionlistener kommentieren
* Alle Textfonts anpassen
*/
/**
* Der MainFrame dient als Hub und Übergreifendes Fenster auf dem alle weiteren Panel angezeigt werden.
* Dadurch werden keine weiteren Fenster geöffnet.
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public class MainFrame extends JFrame {
@ -31,6 +33,7 @@ public class MainFrame extends JFrame {
/**
* Konstruktor von MainFrame.
* Ermöglicht es Panel anzuzeigen.
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public MainFrame() {
@ -71,6 +74,7 @@ public class MainFrame extends JFrame {
/**
* Methode, um die Ansicht zu wechseln
* @param panelName Name des anzuzeigenden Panels
* @author Joshua Kuklok
*/
public void showPanel(String panelName) {
cardLayout.show(mainPanel, panelName);
@ -82,6 +86,7 @@ public class MainFrame extends JFrame {
* @param num Hilfsvariable um abzugleichen, ob "Spiel erstellen" oder "Spiel beitreten" ausgewählt wurde
* @param playerType Spielertyp(HumanPlayer, AIEasy etc.)
* @param playerName Name des Spielers
* @author Lucas Bronson, Joshua Kuklok
*/
public void showPanelSMG(String panelName, int num, int playerType,String playerName) {
this.localMult = num;
@ -99,6 +104,7 @@ public class MainFrame extends JFrame {
* @param semesterCounter Ausgewähltes Semester
* @param p1 Erstes Spielerobjekt
* @param p2 Zweites Spielerobjekt
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public void showPanelSLG(String panelName,int semesterCounter, Player p1, Player p2) {
this.semesterCounter = semesterCounter;
@ -114,6 +120,7 @@ public class MainFrame extends JFrame {
* Spezifische ShowPanel der startLocalGame Klasse
* @param panelName Name des anzuzeigenden Panels
* @param semesterCounter Ausgewähltes Semester
* @author Joshua Kuklok
*/
public void showPanelSLGLS(String panelName,int semesterCounter) {
this.semesterCounter = semesterCounter;
@ -151,6 +158,7 @@ public class MainFrame extends JFrame {
/**
* Aktualisiert das Spielfeld (kontextText)
* @author Luca Conte
*/
public void refreshGameBoard() {
this.gameBoard.refresh();

View File

@ -10,6 +10,12 @@ public class ShipButton extends JButton {
private Ship ship;
private BoardDisplay boardDisplay;
/**
* TODO fertig beschreiben
* @param ship
* @param boardDisplay
* @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/
public ShipButton(Ship ship, BoardDisplay boardDisplay) {
super(ship.getName());
this.ship = ship;
@ -23,6 +29,7 @@ public class ShipButton extends JButton {
* Setzt Farbe der Modulbuttons.
* Verschiedene Farben für:
* Modul ausgewählt, platziert nicht platziert.
* @author Joshua Kuklok
*/
public void refreshButtonState() {
if (ship.isPlaced()) {

View File

@ -10,6 +10,7 @@ import java.util.Map;
/**
* Der SoundHandler dient zum Anlegen und Abspielen von Sounds
* @author Lucas Bronson, Luca Conte, Ole Wachtel, Joshua Kuklok
*/
public class SoundHandler {
@ -29,6 +30,7 @@ public class SoundHandler {
/**
* Erstellt neuen Thread, um ausgewählten Sound abzuspielen
* @param soundName Name der Audiodatei, welche abgespielt werden soll
* @author Ole Wachtel, Luca Conte
*/
public static void playSound(String soundName) {
if (soundOn) {
@ -65,6 +67,7 @@ public class SoundHandler {
* TODO funktion beschreiben (potentiell nicht benötigte Funktion?)
* @param soundName
* @param path
* @author Ole Wachtel
*/
static void add(String soundName, String path){
sounds.put(soundName, path);
@ -73,6 +76,7 @@ public class SoundHandler {
/**
* TODO funktion beschreiben (potentiell nicht benötigte Funktion?)
* @param sound
* @author Ole Wachtel
*/
static void setSoundOn(boolean sound){
soundOn= sound;

View File

@ -3,6 +3,7 @@ import java.awt.*;
/**
* Das Verbinden Panel dient als "Überblende", während im Backend das Spiel erstellt/ eine Verbindung hergestellt wird.
* @author Lucas Bronson
*/
public class Verbinden extends JPanel{
@ -15,6 +16,7 @@ public class Verbinden extends JPanel{
/**
* Konstruktor der Verbinden Klasse.
* @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden.
* @author Lucas Bronson
*/
public Verbinden(MainFrame frame) {
setLayout(null);
@ -24,6 +26,7 @@ public class Verbinden extends JPanel{
/**
* Baut Panel auf.
* @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden.
* @author Lucas Bronson
*/
private void buildPanel(MainFrame frame) {
setLayout(new BorderLayout());

View File

@ -54,10 +54,13 @@ public class WinScreen extends JPanel {
okButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SoundHandler.playSound("plop");
frame.showPanel("MainMenu");
}
});
add(winLabel);
add(okButton);
SoundHandler.playSound("loose");
}
}

View File

@ -5,6 +5,7 @@ import java.awt.event.ActionListener;
/**
* Das startLocalGame Panel dient dem Erstellen eines lokalen Spiels.
* Hier kann der Benutzer Spieler inklusive Namen und das Semester, in dem sich der Benutzer befindet, einstellen.
* @author Lucas Bronson, Joshua Kuklok
*/
public class startLocalGame extends JPanel {
// Player
@ -54,6 +55,7 @@ public class startLocalGame extends JPanel {
* Fügt ebenfalls ActionListeners hinzu, damit Buttons etc. ihre gewünschte Funktion haben
*
* @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden.
* @author Lucas Bronson, Joshua Kuklok
*/
startLocalGame(MainFrame frame) {
// Layout des Panels
@ -248,6 +250,7 @@ public class startLocalGame extends JPanel {
/**
* Setzt das jeweils "nächste" Icon, wenn der leftPlayerLeftButton gedrückt wird.
* @author Joshua Kuklok
*/
private void toggleLeftPlayerIconLeft() {
if (leftPlayerIcon.getIcon() == humanPlayerIcon) {
@ -263,6 +266,7 @@ public class startLocalGame extends JPanel {
/**
* Setzt das jeweils "nächste" Icon, wenn der leftPlayerRightButton gedrückt wird.
* @author Joshua Kuklok
*/
private void toggleLeftPlayerIconRight() {
if (leftPlayerIcon.getIcon() == humanPlayerIcon) {
@ -278,6 +282,7 @@ public class startLocalGame extends JPanel {
/**
* Setzt das jeweils "nächste" Icon, wenn der RightPlayerLeftButton gedrückt wird.
* @author Joshua Kuklok
*/
private void toggleRightPlayerIconLeft() {
if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) {
@ -291,6 +296,7 @@ public class startLocalGame extends JPanel {
/**
* Setzt das jeweils "nächste" Icon, wenn der RightPlayerRightButton gedrückt wird.
* @author Joshua Kuklok
*/
private void toggleRightPlayerIconRight() {
if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) {
@ -304,6 +310,7 @@ public class startLocalGame extends JPanel {
/**
* Aktualisiert die Textfelder basierend auf den Icons
* @author Joshua Kuklok
*/
private void updateTextFields() {
// Für Linken Spieler

View File

@ -4,12 +4,14 @@ import java.awt.*;
/**
* Das startLocalGameLoadingScreen Panel dient als "Überblende", während im Backend das Spiel erstellt wird.
* Hier wird lediglich Text angezeigt
* @author Joshua Kuklok
*/
public class startLocalGameLoadingScreen extends JPanel{
/**
* Konstruktor der startLocalGameLoadingScreen.
* @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden.
* @param semesterCounter Ein Zähler, der das gewählte Semester speichert (hier unbenutzt)
* @author Joshua Kuklok
*/
startLocalGameLoadingScreen(MainFrame frame, int semesterCounter) {

View File

@ -5,6 +5,7 @@ import java.awt.event.ActionListener;
/**
* Das startMultiplayerGame Panel dient dem Erstellen eines Online Spiels.
* Hier kann der Benutzer Spieler inklusive Namen und das Semester, in dem sich der Benutzer befindet, einstellen.
* @author Joshua Kuklok
*/
public class startMultiplayerGame extends JPanel {
@ -43,6 +44,7 @@ public class startMultiplayerGame extends JPanel {
* Fügt Buttons, Textfelder und Label hinzu.
* Fügt ebenfalls ActionListeners hinzu, damit Buttons etc. ihre gewünschte Funktion haben
* @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden.
* @author Joshua Kuklok
*/
startMultiplayerGame(MainFrame frame) {
@ -181,6 +183,7 @@ public class startMultiplayerGame extends JPanel {
/**
* Setzt das jeweils "nächste" Icon, wenn der PlayerLeftButton gedrückt wird.
* @author Joshua Kuklok
*/
private void togglePlayerIconLeft() {
if (PlayerIcon.getIcon() == humanPlayerIcon) {
@ -196,6 +199,7 @@ public class startMultiplayerGame extends JPanel {
/**
* Setzt das jeweils "nächste" Icon, wenn der PlayerRightButton gedrückt wird.
* @author Joshua Kuklok
*/
private void togglePlayerIconRight() {
if (PlayerIcon.getIcon() == humanPlayerIcon) {
@ -211,6 +215,7 @@ public class startMultiplayerGame extends JPanel {
/**
* Aktualisiert die Textfelder basierend auf den Icons
* @author Joshua Kuklok
*/
private void updateTextFields() {
if (PlayerIcon.getIcon() == humanPlayerIcon) {