Compare commits
13 Commits
developmen
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7a3790f81 | ||
|
|
56112f01bb | ||
|
|
75ce695029 | ||
|
|
9af54051da | ||
|
|
ccf77f052f | ||
|
|
0d3e93b681 | ||
|
|
ab4c7159f3 | ||
|
|
61ea4c3276 | ||
|
|
e8506e607c | ||
|
|
0c46477f01 | ||
|
|
3ba1c62685 | ||
|
|
82aa9f6a51 | ||
|
|
d6ae8f3bdc |
BIN
Dokumente/Abschlusspräsentation_v1.0.2.pdf
Normal file
BIN
Dokumente/Abschlusspräsentation_v1.0.2.pdf
Normal file
Binary file not shown.
@@ -13,6 +13,7 @@
|
|||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.prefs.Preferences;
|
import java.util.prefs.Preferences;
|
||||||
@@ -83,7 +84,7 @@ public class MdgaApp extends SimpleApplication {
|
|||||||
/**
|
/**
|
||||||
* The client game logic.
|
* The client game logic.
|
||||||
*/
|
*/
|
||||||
private final ClientGameLogic clientGameLogic;
|
private ClientGameLogic clientGameLogic;
|
||||||
|
|
||||||
private ExecutorService executor;
|
private ExecutorService executor;
|
||||||
|
|
||||||
@@ -137,9 +138,11 @@ public static void main(String[] args) {
|
|||||||
app.setDisplayStatView(false);
|
app.setDisplayStatView(false);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
settings.setIcons(new BufferedImage[]{
|
if (!System.getProperty("os.name").toLowerCase().contains("mac")) {
|
||||||
ImageIO.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("Images/icon/icon128.png"))
|
settings.setIcons(new BufferedImage[]{
|
||||||
});
|
ImageIO.read(Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResourceAsStream("Images/icon/icon128.png")))
|
||||||
|
});
|
||||||
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println(e.getMessage());
|
System.out.println(e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -201,6 +204,7 @@ public void enter(MdgaState state) {
|
|||||||
switch (state) {
|
switch (state) {
|
||||||
case MAIN:
|
case MAIN:
|
||||||
view = mainView;
|
view = mainView;
|
||||||
|
clientGameLogic = new ClientGameLogic(networkConnection);
|
||||||
break;
|
break;
|
||||||
case LOBBY:
|
case LOBBY:
|
||||||
view = lobbyView;
|
view = lobbyView;
|
||||||
|
|||||||
@@ -103,11 +103,10 @@ public void shutdownServer() {
|
|||||||
// Wait for the server to shut down
|
// Wait for the server to shut down
|
||||||
try {
|
try {
|
||||||
serverThread.join(); // Wait for the server thread to finish
|
serverThread.join(); // Wait for the server thread to finish
|
||||||
|
System.out.println("Server shutdown successfully.");
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Server shutdown successfully.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -285,6 +285,7 @@ public void handleDisconnect(int id) {
|
|||||||
public void exit() {
|
public void exit() {
|
||||||
LOGGER.log(Level.INFO, "Requesting server shutdown"); //NON-NLS
|
LOGGER.log(Level.INFO, "Requesting server shutdown"); //NON-NLS
|
||||||
running = false;
|
running = false;
|
||||||
|
pendingMessages.add(new ReceivedMessage(new AnimationEndMessage(), -1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -76,6 +76,15 @@ private Piece getPiece(UUID pieceId) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clear(){
|
||||||
|
game = new Game();
|
||||||
|
notifications.clear();
|
||||||
|
setState(dialogsState);
|
||||||
|
isHost = false;
|
||||||
|
ownPlayerID = 0;
|
||||||
|
ownPlayerName = null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method returns the clientSender
|
* This method returns the clientSender
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ public void exit() {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void selectLeave() {
|
public void selectLeave() {
|
||||||
parent.setState(parent.getStartDialog());
|
|
||||||
logic.addNotification(new StartDialogNotification());
|
|
||||||
logic.send(new LeaveGameMessage());
|
logic.send(new LeaveGameMessage());
|
||||||
|
logic.addNotification(new StartDialogNotification());
|
||||||
|
logic.setState(logic.getDialogs());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -175,4 +175,16 @@ public void received(StartGameMessage msg, int from) {
|
|||||||
this.logic.getServerSender().send(from, new IncorrectRequestMessage(5));
|
this.logic.getServerSender().send(from, new IncorrectRequestMessage(5));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removed the player after receiving a LeaveGameMessage message.
|
||||||
|
*
|
||||||
|
* @param msg as the message which was sent by the player as a LeaveGameMessage object.
|
||||||
|
* @param from as the client id of the player as an Integer.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void received(LeaveGameMessage msg, int from) {
|
||||||
|
this.logic.getGame().removePlayer(from);
|
||||||
|
this.logic.getServerSender().broadcast(new LobbyPlayerLeaveMessage(from));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,13 +61,13 @@ public void received(AnimationEndMessage msg, int from) {
|
|||||||
if (finishedAnimations.size() == logic.getGame().getPlayers().size()) {
|
if (finishedAnimations.size() == logic.getGame().getPlayers().size()) {
|
||||||
if (logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).isFinished()) {
|
if (logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).isFinished()) {
|
||||||
logic.getGame().getPlayerRanking().put(logic.getGame().getPlayerRanking().size(), logic.getGame().getActivePlayer());
|
logic.getGame().getPlayerRanking().put(logic.getGame().getPlayerRanking().size(), logic.getGame().getActivePlayer());
|
||||||
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(logic.getGame().getActiveColor()), new SpectatorMessage());
|
|
||||||
setActivePlayer(logic.getGame().getActiveColor());
|
|
||||||
if (logic.getGame().getPlayerRanking().size() == logic.getGame().getPlayers().size() - 1) {
|
if (logic.getGame().getPlayerRanking().size() == logic.getGame().getPlayers().size() - 1) {
|
||||||
logic.getGame().getPlayerRanking().put(logic.getGame().getPlayerRanking().size(), logic.getGame().getActivePlayer());
|
logic.getGame().getPlayerRanking().put(logic.getGame().getPlayerRanking().size(), logic.getGame().getPlayerByColor(logic.getGame().getActiveColor().next(logic.getGame())));
|
||||||
logic.setCurrentState(logic.getCeremonyState());
|
logic.setCurrentState(logic.getCeremonyState());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(logic.getGame().getActiveColor()), new SpectatorMessage());
|
||||||
|
setActivePlayer(logic.getGame().getActiveColor());
|
||||||
this.turnAutomaton.getGameAutomaton().setCurrentState(this.turnAutomaton.getGameAutomaton().getTurnState());
|
this.turnAutomaton.getGameAutomaton().setCurrentState(this.turnAutomaton.getGameAutomaton().getTurnState());
|
||||||
}
|
}
|
||||||
else if (logic.getGame().getDiceEyes() == 6) {
|
else if (logic.getGame().getDiceEyes() == 6) {
|
||||||
|
|||||||
@@ -55,11 +55,11 @@ public void exit() {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void received(AnimationEndMessage msg, int from) {
|
public void received(AnimationEndMessage msg, int from) {
|
||||||
logic.getGame().getActivePlayer().getPlayerStatistic().increaseCardsPlayed();
|
|
||||||
logic.getGame().getGameStatistics().increaseCardsPlayed();
|
|
||||||
this.messageReceived.add(from);
|
this.messageReceived.add(from);
|
||||||
if (this.messageReceived.size() == this.logic.getGame().getPlayers().size()) {
|
if (this.messageReceived.size() == this.logic.getGame().getPlayers().size()) {
|
||||||
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new DiceNowMessage());
|
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new DiceNowMessage());
|
||||||
|
logic.getGame().getActivePlayer().getPlayerStatistic().increaseCardsPlayed();
|
||||||
|
logic.getGame().getGameStatistics().increaseCardsPlayed();
|
||||||
this.turnAutomaton.setCurrentState(this.turnAutomaton.getRollDiceState());
|
this.turnAutomaton.setCurrentState(this.turnAutomaton.getRollDiceState());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,8 +67,8 @@ public void received(RequestMoveMessage msg, int from) {
|
|||||||
int indexOfPiece = moveablePieces.indexOf(msg.getPiece());
|
int indexOfPiece = moveablePieces.indexOf(msg.getPiece());
|
||||||
int steps = logic.getGame().getDiceModifier() * logic.getGame().getDiceEyes();
|
int steps = logic.getGame().getDiceModifier() * logic.getGame().getDiceEyes();
|
||||||
Piece piece = moveablePieces.get(indexOfPiece);
|
Piece piece = moveablePieces.get(indexOfPiece);
|
||||||
logic.getGame().getActivePlayer().getPlayerStatistic().increaseTraveledNodes(calculateTargetIndex(piece));
|
logic.getGame().getActivePlayer().getPlayerStatistic().increaseTraveledNodes(logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier());
|
||||||
logic.getGame().getGameStatistics().increaseTraveledNodes(calculateTargetIndex(piece));
|
logic.getGame().getGameStatistics().increaseTraveledNodes(logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier());
|
||||||
if (canPieceMoveInHome(piece, steps)) {
|
if (canPieceMoveInHome(piece, steps)) {
|
||||||
if (piece.getState().equals(PieceState.HOME)) {
|
if (piece.getState().equals(PieceState.HOME)) {
|
||||||
//gets the oldNode
|
//gets the oldNode
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ public void received(RequestMoveMessage msg, int from) {
|
|||||||
if (piece.equals(msg.getPiece())) {
|
if (piece.equals(msg.getPiece())) {
|
||||||
int targetIndex = calculateTargetIndex(piece);
|
int targetIndex = calculateTargetIndex(piece);
|
||||||
Node targetNode = logic.getGame().getBoard().getInfield()[targetIndex];
|
Node targetNode = logic.getGame().getBoard().getInfield()[targetIndex];
|
||||||
logic.getGame().getActivePlayer().getPlayerStatistic().increaseTraveledNodes(calculateTargetIndex(piece));
|
logic.getGame().getActivePlayer().getPlayerStatistic().increaseTraveledNodes(logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier());
|
||||||
logic.getGame().getGameStatistics().increaseTraveledNodes(calculateTargetIndex(piece));
|
logic.getGame().getGameStatistics().increaseTraveledNodes(logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier());
|
||||||
|
|
||||||
//send MoveMessage
|
//send MoveMessage
|
||||||
logic.getServerSender().broadcast(new MoveMessage(piece, false, targetIndex));
|
logic.getServerSender().broadcast(new MoveMessage(piece, false, targetIndex));
|
||||||
|
|||||||
@@ -9,4 +9,10 @@ zusätzlichen Features.
|
|||||||
In dieser Version gibt es ein besonderes Feature: Bonuskarten. Auf
|
In dieser Version gibt es ein besonderes Feature: Bonuskarten. Auf
|
||||||
bestimmten Feldern können die Spieler Bonuskarten ziehen, die ihnen
|
bestimmten Feldern können die Spieler Bonuskarten ziehen, die ihnen
|
||||||
besondere Vorteile im Spiel verschaffen. Diese Bonuskarten können nur vor
|
besondere Vorteile im Spiel verschaffen. Diese Bonuskarten können nur vor
|
||||||
dem Wurf des Würfels eingesetzt werden.
|
dem Wurf des Würfels eingesetzt werden.
|
||||||
|
|
||||||
|
**_INSTALLATION_**
|
||||||
|
|
||||||
|
Von der Release [Seite](https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-01/-/releases) für Windows die .exe Datei runterladen für Linux und Mac die .jar Datei,
|
||||||
|
zum spielen wird dann Java 20 oder höher benötigt.
|
||||||
|
Falls die Dateien nicht mehr zum Dowload bereit stehen, wenden Sie sich bitte an Fleischer Hanno (hanno.fleischer@unibw.de).
|
||||||
Reference in New Issue
Block a user