From e8bb9e1eee97553fcecd6b499e9183e797047010 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 23 Jun 2025 19:56:37 +0200 Subject: [PATCH] =?UTF-8?q?Augabe=20gezogener=20Figuren=20mit=20Unicodeanz?= =?UTF-8?q?eige=20erg=C3=A4nzt,=20bzw=20ernuert.=20JUnit=20test=20dazu=20i?= =?UTF-8?q?nklusive.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../de/mannheim/th/chess/domain/Game.java | 11 +++++++++- .../de/mannheim/th/chess/ui/MainFrame.java | 9 --------- .../de/mannheim/th/chess/ui/SpielFrame.java | 20 ++++++------------- .../de/mannheim/th/chess/domain/GameTest.java | 9 +++++++++ .../mannheim/th/chess/ui/SpielFrameTest.java | 12 +++++++++++ 5 files changed, 37 insertions(+), 24 deletions(-) create mode 100644 src/test/java/de/mannheim/th/chess/ui/SpielFrameTest.java 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 c59d48a..f713aac 100644 --- a/src/main/java/de/mannheim/th/chess/domain/Game.java +++ b/src/main/java/de/mannheim/th/chess/domain/Game.java @@ -177,9 +177,13 @@ public class Game { return this.board.legalMoves().stream().filter(move -> move.getFrom() == square).map(move -> move.getTo()) .collect(Collectors.toList()); } + + public String getUnicodeFromMove(Move move) { + return board.getPiece(move.getTo()).getFanSymbol().toUpperCase(); + } public String toFEN() { - board.toString(); + //board.toString(); return board.getFen(); } @@ -214,4 +218,9 @@ public class Game { public MoveList getMoveList() { return this.movelist; } + + public Board getBoard() { + // TODO Auto-generated method stub + return this.board; + } } diff --git a/src/main/java/de/mannheim/th/chess/ui/MainFrame.java b/src/main/java/de/mannheim/th/chess/ui/MainFrame.java index 37d8e99..73c5010 100644 --- a/src/main/java/de/mannheim/th/chess/ui/MainFrame.java +++ b/src/main/java/de/mannheim/th/chess/ui/MainFrame.java @@ -8,24 +8,15 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import de.mannheim.th.chess.App; -import de.mannheim.th.chess.domain.Game; import javax.swing.JLabel; -import javax.swing.JOptionPane; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; -import javax.swing.JFileChooser; import java.awt.Component; import java.awt.Font; 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 d2e18d1..cea6abf 100644 --- a/src/main/java/de/mannheim/th/chess/ui/SpielFrame.java +++ b/src/main/java/de/mannheim/th/chess/ui/SpielFrame.java @@ -30,18 +30,16 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTextArea; -import javax.swing.JTextField; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; -import java.awt.Dimension; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; + public class SpielFrame extends JFrame { @@ -385,16 +383,10 @@ public class SpielFrame extends JFrame { public void aktualisiereAusgabe() { StringBuilder sb = new StringBuilder(); sb.append("\n Bisherige Züge:\n"); - sb.append(" +------------------+------------------+\n"); - sb.append(" | Player 1: | Player 2: |\n"); - sb.append(" +------------------+------------------+\n"); MoveList l = game.getMoveList(); - for (int i = 0; i < l.size(); i += 2) { - String p1 = l.get(i).toString(); - String p2 = (i + 1 < l.size()) ? l.get(i + 1).toString() : ""; - sb.append(String.format(" | %-17s| %-17s|\n", p1, p2)); - sb.append(" +------------------+------------------+\n"); + for (Move m: l) { + sb.append(" "+game.getUnicodeFromMove(m)+": "+m.toString()+"\n"); } ausgabe.setText(sb.toString()); @@ -405,10 +397,10 @@ public class SpielFrame extends JFrame { String[] zeilen = ausgabe.getText().split("\n"); //es müssen immer mind 5 Zeilen existieren, dass also 1 Zug löschbar ist - if (zeilen.length <= 5) return; + if (zeilen.length <= 2) return; StringBuilder sb = new StringBuilder(); - for (int i = 0; i < zeilen.length - 2; i++) { + for (int i = 0; i < zeilen.length - 1; i++) { sb.append(zeilen[i]).append("\n"); } diff --git a/src/test/java/de/mannheim/th/chess/domain/GameTest.java b/src/test/java/de/mannheim/th/chess/domain/GameTest.java index cdf123e..9a154e5 100644 --- a/src/test/java/de/mannheim/th/chess/domain/GameTest.java +++ b/src/test/java/de/mannheim/th/chess/domain/GameTest.java @@ -52,4 +52,13 @@ public class GameTest { controllList = Arrays.asList(Square.H1, Square.A1); assertEquals(controllList, game.getAllLegalMoveableSquares()); } + + @Test + void getUnicodeFromMoveTest() { + + Game g = new Game(); + Move m = new Move(Square.A2, Square.A4); + g.getBoard().doMove(m); + assertEquals("♙", g.getUnicodeFromMove(m)); + } } diff --git a/src/test/java/de/mannheim/th/chess/ui/SpielFrameTest.java b/src/test/java/de/mannheim/th/chess/ui/SpielFrameTest.java new file mode 100644 index 0000000..0950947 --- /dev/null +++ b/src/test/java/de/mannheim/th/chess/ui/SpielFrameTest.java @@ -0,0 +1,12 @@ +package de.mannheim.th.chess.ui; + +import org.junit.jupiter.api.Test; + +class SpielFrameTest { + + @Test + void mirrowedGridTest() { + + } + +}