refactor OutputSystem

This commit is contained in:
2025-04-12 11:12:36 +02:00
parent 0d3d77781f
commit 8190090adc
19 changed files with 176 additions and 49 deletions

View File

@@ -0,0 +1,35 @@
package chess.controller.event;
import chess.model.Color;
import chess.model.Coordinate;
public class GameAdaptator implements GameListener {
@Override
public void playerTurn(Color color) {}
@Override
public void winnerIs(Color color) {}
@Override
public void kingIsInCheck() {}
@Override
public void kingIsInMat() {}
@Override
public void patSituation() {}
@Override
public void hasSurrendered(Color color) {}
@Override
public void gameStarted() {}
@Override
public void promotePawn(Coordinate pieceCoords) {}
@Override
public void updateDisplay() {}
}

View File

@@ -0,0 +1,68 @@
package chess.controller.event;
import java.util.ArrayList;
import java.util.List;
import chess.model.Color;
import chess.model.Coordinate;
public class GameDispatcher implements GameListener{
private final List<GameListener> listeners;
public GameDispatcher() {
this.listeners = new ArrayList<>();
}
public void addListener(GameListener listener) {
this.listeners.add(listener);
}
@Override
public void playerTurn(Color color) {
this.listeners.forEach((l) -> l.playerTurn(color));
}
@Override
public void winnerIs(Color color) {
this.listeners.forEach((l) -> l.winnerIs(color));
}
@Override
public void kingIsInCheck() {
this.listeners.forEach((l) -> l.kingIsInCheck());
}
@Override
public void kingIsInMat() {
this.listeners.forEach((l) -> l.kingIsInMat());
}
@Override
public void patSituation() {
this.listeners.forEach((l) -> l.patSituation());
}
@Override
public void hasSurrendered(Color color) {
this.listeners.forEach((l) -> l.hasSurrendered(color));
}
@Override
public void gameStarted() {
this.listeners.forEach((l) -> l.gameStarted());
}
@Override
public void promotePawn(Coordinate pieceCoords) {
this.listeners.forEach((l) -> l.promotePawn(pieceCoords));
}
@Override
public void updateDisplay() {
this.listeners.forEach((l) -> l.updateDisplay());
}
}

View File

@@ -0,0 +1,25 @@
package chess.controller.event;
import chess.model.Color;
import chess.model.Coordinate;
public interface GameListener {
void playerTurn(Color color);
void winnerIs(Color color);
void kingIsInCheck();
void kingIsInMat();
void patSituation();
void hasSurrendered(Color color);
void gameStarted();
void promotePawn(Coordinate pieceCoords);
void updateDisplay();
}