From 3a9084da0b18f58502a690b781c513c1209f2f8a Mon Sep 17 00:00:00 2001 From: <3020511@stud.hs-mannheim.de> Date: Mon, 30 Jun 2025 14:49:11 +0200 Subject: [PATCH] =?UTF-8?q?Test=20f=C3=BCr=20Er=C3=B6ffnungserkennung=20un?= =?UTF-8?q?d=20kleine=20=C3=84nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/de/mannheim/th/chess/App.java | 4 +-- .../de/mannheim/th/chess/domain/Game.java | 4 +++ .../de/mannheim/th/chess/ui/SpielFrame.java | 3 +- .../th/chess/utl/OpeningRecognizer.java | 1 - .../th/chess/utl/OpeningRecognizerTest.java | 32 +++++++++++++++++++ 5 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 src/test/java/de/mannheim/th/chess/utl/OpeningRecognizerTest.java diff --git a/src/main/java/de/mannheim/th/chess/App.java b/src/main/java/de/mannheim/th/chess/App.java index 19a59bf..0fad01d 100644 --- a/src/main/java/de/mannheim/th/chess/App.java +++ b/src/main/java/de/mannheim/th/chess/App.java @@ -26,7 +26,7 @@ public class App { * @throws IOException */ public static void main(String[] args) throws IOException { - new MainFrame(); - OpeningRecognizer.loadOpenings(); + OpeningRecognizer.loadOpenings(); + new MainFrame(); } } diff --git a/src/main/java/de/mannheim/th/chess/domain/Game.java b/src/main/java/de/mannheim/th/chess/domain/Game.java index 12014e9..9b086d6 100644 --- a/src/main/java/de/mannheim/th/chess/domain/Game.java +++ b/src/main/java/de/mannheim/th/chess/domain/Game.java @@ -109,7 +109,11 @@ public class Game { public void playMove(Move move) { Piece removedPiece = board.getPiece(move.getTo()); if (removedPiece != Piece.NONE) { + int removedPiecesCount = removedPieces.size(); removedPieces.add(removedPiece); + if (removedPiecesCount + 1 < removedPieces.size()) { + removedPieces.removeLast(); + } } this.board.doMove(move); this.movelist.add(move); diff --git a/src/main/java/de/mannheim/th/chess/ui/SpielFrame.java b/src/main/java/de/mannheim/th/chess/ui/SpielFrame.java index 4a114cc..3bd441b 100644 --- a/src/main/java/de/mannheim/th/chess/ui/SpielFrame.java +++ b/src/main/java/de/mannheim/th/chess/ui/SpielFrame.java @@ -272,7 +272,8 @@ public class SpielFrame extends JFrame { panelLinks.add(b); } } - + + @Deprecated public void showWin(int player) { JFrame frame = new JFrame("Result"); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); diff --git a/src/main/java/de/mannheim/th/chess/utl/OpeningRecognizer.java b/src/main/java/de/mannheim/th/chess/utl/OpeningRecognizer.java index 1e115cf..d74af81 100644 --- a/src/main/java/de/mannheim/th/chess/utl/OpeningRecognizer.java +++ b/src/main/java/de/mannheim/th/chess/utl/OpeningRecognizer.java @@ -3,7 +3,6 @@ package de.mannheim.th.chess.utl; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; -import java.nio.file.spi.FileSystemProvider; import java.util.ArrayList; import java.util.List; diff --git a/src/test/java/de/mannheim/th/chess/utl/OpeningRecognizerTest.java b/src/test/java/de/mannheim/th/chess/utl/OpeningRecognizerTest.java new file mode 100644 index 0000000..ad26a4f --- /dev/null +++ b/src/test/java/de/mannheim/th/chess/utl/OpeningRecognizerTest.java @@ -0,0 +1,32 @@ +package de.mannheim.th.chess.utl; + +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import com.github.bhlangonijr.chesslib.Square; +import com.github.bhlangonijr.chesslib.move.Move; +import com.github.bhlangonijr.chesslib.move.MoveList; + + + +class OpeningRecognizerTest { + + @BeforeAll + static void prepareOpenings() throws IOException { + OpeningRecognizer.loadOpenings(); + } + + @Test + void test() { + Move m = new Move(Square.E2, Square.E4); + MoveList moves = new MoveList(); + moves.add(m); + assertEquals(OpeningRecognizer.compareOpening(moves, "Unknown"), "King's pawn Opening"); + + } + +}