Compare commits
10 Commits
Version1.1
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7a3790f81 | ||
|
|
56112f01bb | ||
|
|
75ce695029 | ||
|
|
9af54051da | ||
|
|
ccf77f052f | ||
|
|
0d3e93b681 | ||
|
|
ab4c7159f3 | ||
|
|
61ea4c3276 | ||
|
|
e8506e607c | ||
|
|
0c46477f01 |
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) {
|
||||||
|
|||||||
@@ -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