Augabe gezogener Figuren mit Unicodeanzeige ergänzt, bzw ernuert. JUnit

test dazu inklusive.
devUi
Your Name 2025-06-23 19:56:37 +02:00
parent 452a39bf6b
commit e8bb9e1eee
5 changed files with 37 additions and 24 deletions

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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");
}

View File

@ -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));
}
}

View File

@ -0,0 +1,12 @@
package de.mannheim.th.chess.ui;
import org.junit.jupiter.api.Test;
class SpielFrameTest {
@Test
void mirrowedGridTest() {
}
}