Merge pull request 'lucasjoshua' (#26) from lucasjoshua into main

Reviewed-on: #26
This commit is contained in:
Luca Conte 2024-12-23 19:46:03 +00:00
commit 0f42a66e4a
9 changed files with 19 additions and 73 deletions

View File

@ -75,7 +75,7 @@ public class Board {
* @author Peer Ole Wachtel * @author Peer Ole Wachtel
*/ */
private void createShip(int semester){ private void createShip(int semester){
List<ShipData> shipData = Ship.semeterList.get(semester); List<ShipData> shipData = Ship.semeterList.get(semester-1);
for (int i = 0; i < shipData.size(); i++) { for (int i = 0; i < shipData.size(); i++) {
this.ships.add(new Ship(shipData.get(i).size(), shipData.get(i).name())); this.ships.add(new Ship(shipData.get(i).size(), shipData.get(i).name()));
} }

View File

@ -106,7 +106,7 @@ public class GameBoard extends JPanel {
JPanel headerPanel = new JPanel(); JPanel headerPanel = new JPanel();
headerPanel.setLayout(new BorderLayout()); headerPanel.setLayout(new BorderLayout());
headerPanel.add(kontextText, BorderLayout.WEST); headerPanel.add(kontextText, BorderLayout.WEST);
kontextText.setFont(new Font("Roboto", Font.BOLD, 30)); //TODO setFont fixen kontextText.setFont(new Font("Roboto", Font.BOLD, 30));
headerPanel.add(giveUpButton, BorderLayout.EAST); headerPanel.add(giveUpButton, BorderLayout.EAST);
JPanel leftButtonsPanel = new JPanel(); JPanel leftButtonsPanel = new JPanel();
@ -148,7 +148,7 @@ public class GameBoard extends JPanel {
ownBoardPanel.resetAllShips(); ownBoardPanel.resetAllShips();
} }
}); });
// TODO buttons erst disablen wenn alle Schiffe platziert sind
// Um Bereit-Meldung and Backend zu geben, kontextText zu setzten und ready/reset Button zu deaktivieren // Um Bereit-Meldung and Backend zu geben, kontextText zu setzten und ready/reset Button zu deaktivieren
readyButton.addActionListener(new ActionListener() { readyButton.addActionListener(new ActionListener() {
@Override @Override

View File

@ -14,13 +14,3 @@ public class HalloSchiffeVersenken {
mf.setVisible(true); mf.setVisible(true);
} }
} }
/*
*TODO
* Alle Textfonts anpassen
* SOUND interrupt?
* BACKEND aufruf bei aufgeben
* check bevor ready ob alle schiffe platziert?
* testcode rausnehmen
* FidgetButton als surprise (button während spiels, der zufällig farbe wechseln kann und sounds abspielt)
*/

View File

@ -13,7 +13,7 @@ import java.net.InetSocketAddress;
public class JoinGame extends JPanel { public class JoinGame extends JPanel {
// Funktionshilfen // Funktionshilfen
String standardPort = "1234"; String standardPort = "51525";
// Grafiken // Grafiken
ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png"); ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png");
@ -56,6 +56,7 @@ public class JoinGame extends JPanel {
* @author Lucas Bronson, Joshua Kuklok * @author Lucas Bronson, Joshua Kuklok
*/ */
private void buildPanel(MainFrame frame,int g,int playerType,String playerName, int semesterCounter) { private void buildPanel(MainFrame frame,int g,int playerType,String playerName, int semesterCounter) {
System.out.println("semesterzahl in JoinGame" + semesterCounter);
if(g==1){ if(g==1){
spielBeitretenLabel= new JLabel("Spiel beitreten"); spielBeitretenLabel= new JLabel("Spiel beitreten");
}else{ }else{

View File

@ -45,14 +45,12 @@ public class MainFrame extends JFrame {
MainMenuView mainMenuView = new MainMenuView(this); MainMenuView mainMenuView = new MainMenuView(this);
startLocalGame localGame = new startLocalGame(this); startLocalGame localGame = new startLocalGame(this);
startMultiplayerGame multiplayerGame = new startMultiplayerGame(this); startMultiplayerGame multiplayerGame = new startMultiplayerGame(this);
coinToss coinToss = new coinToss(this);
Verbinden verbinden = new Verbinden(this); Verbinden verbinden = new Verbinden(this);
// Panels hinzufügen // Panels hinzufügen
mainPanel.add(mainMenuView, "MainMenu"); mainPanel.add(mainMenuView, "MainMenu");
mainPanel.add(localGame, "LocalGame"); mainPanel.add(localGame, "LocalGame");
mainPanel.add(multiplayerGame, "MultiplayerGame"); mainPanel.add(multiplayerGame, "MultiplayerGame");
mainPanel.add(coinToss, "coinToss");
mainPanel.add(verbinden, "Verbinden"); mainPanel.add(verbinden, "Verbinden");
// mainPanel.add(winLooseScreen, "WinLooseScreen"); // mainPanel.add(winLooseScreen, "WinLooseScreen");
@ -80,7 +78,7 @@ public class MainFrame extends JFrame {
* @param playerName Name des Spielers * @param playerName Name des Spielers
* @author Lucas Bronson, Joshua Kuklok * @author Lucas Bronson, Joshua Kuklok
*/ */
public void showPanelSMG(String panelName, int num, int playerType,String playerName) { public void showPanelSMG(String panelName, int num, int playerType,String playerName, int semesterCounter) {
this.localMult = num; this.localMult = num;
JoinGame joinGame = new JoinGame(this, localMult, playerType, playerName, semesterCounter); JoinGame joinGame = new JoinGame(this, localMult, playerType, playerName, semesterCounter);

View File

@ -11,9 +11,9 @@ public class ShipButton extends JButton {
private BoardDisplay boardDisplay; private BoardDisplay boardDisplay;
/** /**
* TODO fertig beschreiben * Erstellt Buttons für die beiden Spieler (Module/Schiffe)
* @param ship * @param ship Schiff von welchem der Name genommen wird
* @param boardDisplay * @param boardDisplay Klasse für Interaktion
* @author Lucas Bronson, Luca Conte, Joshua Kuklok * @author Lucas Bronson, Luca Conte, Joshua Kuklok
*/ */
public ShipButton(Ship ship, BoardDisplay boardDisplay) { public ShipButton(Ship ship, BoardDisplay boardDisplay) {

View File

@ -1,39 +0,0 @@
import javax.swing.*;
import java.awt.*;
// TODO Klasse löschen da nicht gebraucht
public class coinToss extends JPanel {
private int reihenfolge = 1; // 1 = Spieler 1 fängt an, 0 = Spieler 2 fängt an
private Timer timer;
private JLabel infoLabel;
// Konstruktor
public coinToss(MainFrame frame) {
setLayout(new BorderLayout());
// Info-Label für den Anzeigetext
infoLabel = new JLabel("", SwingConstants.CENTER);
infoLabel.setFont(new Font("Arial", Font.BOLD, 24));
add(infoLabel, BorderLayout.CENTER);
// Bestimme den Anfangstext basierend auf der "reihenfolge" Variable
if (reihenfolge == 1) {
infoLabel.setText("Du fängst an, mach dich bereit...");
} else {
infoLabel.setText("Dein Gegner fängt an, mach dich bereit...");
}
// Erster Timer, der den Text nach 3 Sekunden auf "Es geht Los!" setzt
/*timer = new Timer(3000, e -> {
infoLabel.setText("Es geht Los!");
// Zweiter Timer, der nach weiteren 3 Sekunden zum Hauptmenü zurückkehrt
Timer backToMenuTimer = new Timer(3000, ev -> {
frame.showPanel("MainMenu");
});
//backToMenuTimer.setRepeats(false); // Timer nur einmal ausführen
backToMenuTimer.start();
});
//timer.setRepeats(false); // Erster Timer soll nur einmal ausgeführt werden
timer.start();*/
}
}

View File

@ -10,10 +10,6 @@ import java.util.HashMap;
* @author Lucas Bronson, Joshua Kuklok, Luca Conte * @author Lucas Bronson, Joshua Kuklok, Luca Conte
*/ */
public class startLocalGame extends JPanel { public class startLocalGame extends JPanel {
// Player
// TODO: entfernen (generell auch test button)
Player p1;
Player p2;
// Funktionshilfen // Funktionshilfen
int semesterCounter = 1; // Semester Counter Label int semesterCounter = 1; // Semester Counter Label
@ -207,7 +203,7 @@ public class startLocalGame extends JPanel {
playerClassMap.put(aiPlayerHardIcon, SpecificAiPlayerHard.class); playerClassMap.put(aiPlayerHardIcon, SpecificAiPlayerHard.class);
frame.showPanelSLGLS("startLocalGameLoadingScreen", semesterCounter); //TODO frame.showPanelSLGLS("startLocalGameLoadingScreen", semesterCounter);
Class<? extends LocalPlayer> leftPlayerClass = playerClassMap.get(leftPlayerIcon.getIcon()); Class<? extends LocalPlayer> leftPlayerClass = playerClassMap.get(leftPlayerIcon.getIcon());
Class<? extends AiPlayer> rightPlayerClass = (Class<? extends AiPlayer>) playerClassMap.get(rightPlayerIcon.getIcon()); Class<? extends AiPlayer> rightPlayerClass = (Class<? extends AiPlayer>) playerClassMap.get(rightPlayerIcon.getIcon());

View File

@ -154,13 +154,13 @@ public class startMultiplayerGame extends JPanel {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (PlayerIcon.getIcon() == humanPlayerIcon) { if (PlayerIcon.getIcon() == humanPlayerIcon) {
frame.showPanelSMG("JoinGame",1,0, PlayerNickname); frame.showPanelSMG("JoinGame",1,0, PlayerNickname, semesterCounter);
} else if ( PlayerIcon.getIcon() == aiPlayerEasyIcon) { } else if ( PlayerIcon.getIcon() == aiPlayerEasyIcon) {
frame.showPanelSMG("JoinGame",1,1, PlayerNickname); frame.showPanelSMG("JoinGame",1,1, PlayerNickname, semesterCounter);
} else if ( PlayerIcon.getIcon() == aiPlayerNormalIcon) { } else if ( PlayerIcon.getIcon() == aiPlayerNormalIcon) {
frame.showPanelSMG("JoinGame",1,2, PlayerNickname); frame.showPanelSMG("JoinGame",1,2, PlayerNickname, semesterCounter);
} else if ( PlayerIcon.getIcon() == aiPlayerHardIcon) { } else if ( PlayerIcon.getIcon() == aiPlayerHardIcon) {
frame.showPanelSMG("JoinGame",1,3, PlayerNickname); frame.showPanelSMG("JoinGame",1,3, PlayerNickname, semesterCounter);
} }
} }
}); });
@ -171,13 +171,13 @@ public class startMultiplayerGame extends JPanel {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
//Parameter -> panelName, Spiel erstellen oder beitreten (int), Spielertyp(int 0-3), Spielername //Parameter -> panelName, Spiel erstellen oder beitreten (int), Spielertyp(int 0-3), Spielername
if (PlayerIcon.getIcon() == humanPlayerIcon) { if (PlayerIcon.getIcon() == humanPlayerIcon) {
frame.showPanelSMG("JoinGame",0,0, PlayerNickname); frame.showPanelSMG("JoinGame",0,0, PlayerNickname, semesterCounter);
} else if ( PlayerIcon.getIcon() == aiPlayerEasyIcon) { } else if ( PlayerIcon.getIcon() == aiPlayerEasyIcon) {
frame.showPanelSMG("JoinGame",0,1, PlayerNickname); frame.showPanelSMG("JoinGame",0,1, PlayerNickname, semesterCounter);
} else if ( PlayerIcon.getIcon() == aiPlayerNormalIcon) { } else if ( PlayerIcon.getIcon() == aiPlayerNormalIcon) {
frame.showPanelSMG("JoinGame",0,2, PlayerNickname); frame.showPanelSMG("JoinGame",0,2, PlayerNickname, semesterCounter);
} else if ( PlayerIcon.getIcon() == aiPlayerHardIcon) { } else if ( PlayerIcon.getIcon() == aiPlayerHardIcon) {
frame.showPanelSMG("JoinGame",0,3, PlayerNickname); frame.showPanelSMG("JoinGame",0,3, PlayerNickname, semesterCounter);
} }
} }
}); });