From d8f52b694d0d112e289cc500714a980887313f37 Mon Sep 17 00:00:00 2001 From: Edson Prestes Date: Wed, 7 Aug 2019 10:20:05 +0200 Subject: [PATCH 1/2] #35 Unicode and HTML code (decimal) supported. --- core-java/pom.xml | 2 +- .../src/main/java/chessgame/domain/Piece.java | 4 ++ .../domain/factory/PieceFactory.java | 55 ++++++++++--------- .../{Bishop.java => AbstractBishop.java} | 8 ++- .../model/{King.java => AbstractKing.java} | 8 ++- .../{Knight.java => AbstractKnight.java} | 8 ++- .../model/{Pawn.java => AbstractPawn.java} | 10 ++-- .../chessgame/domain/model/AbstractPiece.java | 24 +++++++- .../model/{Queen.java => AbstractQueen.java} | 8 ++- .../model/{Rook.java => AbstractRook.java} | 8 ++- .../chessgame/domain/model/BlackBishop.java | 10 ++++ .../chessgame/domain/model/BlackKing.java | 10 ++++ .../chessgame/domain/model/BlackKnight.java | 10 ++++ .../chessgame/domain/model/BlackPawn.java | 10 ++++ .../chessgame/domain/model/BlackQueen.java | 10 ++++ .../chessgame/domain/model/BlackRook.java | 10 ++++ .../chessgame/domain/model/WhiteBishop.java | 10 ++++ .../chessgame/domain/model/WhiteKing.java | 10 ++++ .../chessgame/domain/model/WhiteKnight.java | 10 ++++ .../chessgame/domain/model/WhitePawn.java | 10 ++++ .../chessgame/domain/model/WhiteQueen.java | 10 ++++ .../chessgame/domain/model/WhiteRook.java | 10 ++++ ...hopWhileTest.java => WhiteBishopTest.java} | 7 ++- ...{KingWhiteTest.java => WhiteKingTest.java} | 7 ++- ...ghtWhiteTest.java => WhiteKnightTest.java} | 7 ++- ...{PawnWhiteTest.java => WhitePawnTest.java} | 17 ++++-- ...ueenWhiteTest.java => WhiteQueenTest.java} | 7 ++- ...{RookWhiteTest.java => WhiteRookTest.java} | 7 ++- pom.xml | 2 +- 29 files changed, 241 insertions(+), 68 deletions(-) rename core-java/src/main/java/chessgame/domain/model/{Bishop.java => AbstractBishop.java} (68%) rename core-java/src/main/java/chessgame/domain/model/{King.java => AbstractKing.java} (80%) rename core-java/src/main/java/chessgame/domain/model/{Knight.java => AbstractKnight.java} (91%) rename core-java/src/main/java/chessgame/domain/model/{Pawn.java => AbstractPawn.java} (82%) rename core-java/src/main/java/chessgame/domain/model/{Queen.java => AbstractQueen.java} (76%) rename core-java/src/main/java/chessgame/domain/model/{Rook.java => AbstractRook.java} (75%) create mode 100644 core-java/src/main/java/chessgame/domain/model/BlackBishop.java create mode 100644 core-java/src/main/java/chessgame/domain/model/BlackKing.java create mode 100644 core-java/src/main/java/chessgame/domain/model/BlackKnight.java create mode 100644 core-java/src/main/java/chessgame/domain/model/BlackPawn.java create mode 100644 core-java/src/main/java/chessgame/domain/model/BlackQueen.java create mode 100644 core-java/src/main/java/chessgame/domain/model/BlackRook.java create mode 100644 core-java/src/main/java/chessgame/domain/model/WhiteBishop.java create mode 100644 core-java/src/main/java/chessgame/domain/model/WhiteKing.java create mode 100644 core-java/src/main/java/chessgame/domain/model/WhiteKnight.java create mode 100644 core-java/src/main/java/chessgame/domain/model/WhitePawn.java create mode 100644 core-java/src/main/java/chessgame/domain/model/WhiteQueen.java create mode 100644 core-java/src/main/java/chessgame/domain/model/WhiteRook.java rename core-java/src/test/java/chessgame/domain/model/{BishopWhileTest.java => WhiteBishopTest.java} (94%) rename core-java/src/test/java/chessgame/domain/model/{KingWhiteTest.java => WhiteKingTest.java} (96%) rename core-java/src/test/java/chessgame/domain/model/{KnightWhiteTest.java => WhiteKnightTest.java} (94%) rename core-java/src/test/java/chessgame/domain/model/{PawnWhiteTest.java => WhitePawnTest.java} (73%) rename core-java/src/test/java/chessgame/domain/model/{QueenWhiteTest.java => WhiteQueenTest.java} (94%) rename core-java/src/test/java/chessgame/domain/model/{RookWhiteTest.java => WhiteRookTest.java} (95%) diff --git a/core-java/pom.xml b/core-java/pom.xml index 0cccf31..4fc9e49 100644 --- a/core-java/pom.xml +++ b/core-java/pom.xml @@ -7,7 +7,7 @@ br.opensource.game.chessgame chessgame - 1.0.0.RELEASE + 1.1.0-SNAPSHOT chessgame-core-java diff --git a/core-java/src/main/java/chessgame/domain/Piece.java b/core-java/src/main/java/chessgame/domain/Piece.java index 09d2aab..7900a88 100644 --- a/core-java/src/main/java/chessgame/domain/Piece.java +++ b/core-java/src/main/java/chessgame/domain/Piece.java @@ -37,6 +37,10 @@ public interface Piece extends Serializable { */ BoardPosition getPosition(); + String getUniCode(); + + String getHtmlCode(); + /** * Recovery available positions of a piece. * diff --git a/core-java/src/main/java/chessgame/domain/factory/PieceFactory.java b/core-java/src/main/java/chessgame/domain/factory/PieceFactory.java index 6e1098d..1af0e8d 100644 --- a/core-java/src/main/java/chessgame/domain/factory/PieceFactory.java +++ b/core-java/src/main/java/chessgame/domain/factory/PieceFactory.java @@ -2,22 +2,25 @@ import chessgame.domain.Piece; import chessgame.domain.exception.PieceException; -import chessgame.domain.model.Bishop; +import chessgame.domain.model.BlackBishop; +import chessgame.domain.model.BlackKing; +import chessgame.domain.model.BlackKnight; +import chessgame.domain.model.BlackPawn; +import chessgame.domain.model.BlackQueen; +import chessgame.domain.model.BlackRook; import chessgame.domain.model.Board; import chessgame.domain.model.BoardPosition; -import chessgame.domain.model.King; -import chessgame.domain.model.Knight; -import chessgame.domain.model.Pawn; -import chessgame.domain.model.PieceColor; -import chessgame.domain.model.Queen; -import chessgame.domain.model.Rook; +import chessgame.domain.model.WhiteBishop; +import chessgame.domain.model.WhiteKing; +import chessgame.domain.model.WhiteKnight; +import chessgame.domain.model.WhitePawn; +import chessgame.domain.model.WhiteQueen; +import chessgame.domain.model.WhiteRook; import static chessgame.domain.model.BoardPosition.D1; import static chessgame.domain.model.BoardPosition.D8; import static chessgame.domain.model.BoardPosition.E1; import static chessgame.domain.model.BoardPosition.E8; -import static chessgame.domain.model.PieceColor.BLACK; -import static chessgame.domain.model.PieceColor.WHITE; /** * Factory to create chess pieces. @@ -41,7 +44,7 @@ private PieceFactory() { * @return King */ public static Piece createBlackKing(Board board) { - return create(board, E8, BLACK, King.class); + return create(board, E8, BlackKing.class); } /** @@ -51,7 +54,7 @@ public static Piece createBlackKing(Board board) { * @return Queen */ public static Piece createBlackQueen(Board board) { - return create(board, D8, BLACK, Queen.class); + return create(board, D8, BlackQueen.class); } /** @@ -62,7 +65,7 @@ public static Piece createBlackQueen(Board board) { * @return Bishop */ public static Piece createBlackBishop(Board board, BoardPosition position) { - return create(board, position, BLACK, Bishop.class); + return create(board, position, BlackBishop.class); } /** @@ -73,7 +76,7 @@ public static Piece createBlackBishop(Board board, BoardPosition position) { * @return Knight */ public static Piece createBlackKnight(Board board, BoardPosition position) { - return create(board, position, BLACK, Knight.class); + return create(board, position, BlackKnight.class); } /** @@ -84,7 +87,7 @@ public static Piece createBlackKnight(Board board, BoardPosition position) { * @return Rook */ public static Piece createBlackRook(Board board, BoardPosition position) { - return create(board, position, BLACK, Rook.class); + return create(board, position, BlackRook.class); } /** @@ -95,7 +98,7 @@ public static Piece createBlackRook(Board board, BoardPosition position) { * @return Pawn */ public static Piece createBlackPawn(Board board, BoardPosition position) { - return create(board, position, BLACK, Pawn.class); + return create(board, position, BlackPawn.class); } /** @@ -105,7 +108,7 @@ public static Piece createBlackPawn(Board board, BoardPosition position) { * @return King */ public static Piece createWhiteKing(Board board) { - return create(board, E1, WHITE, King.class); + return create(board, E1, WhiteKing.class); } /** @@ -115,7 +118,7 @@ public static Piece createWhiteKing(Board board) { * @return Queen */ public static Piece createWhiteQueen(Board board) { - return create(board, D1, WHITE, Queen.class); + return create(board, D1, WhiteQueen.class); } /** @@ -126,7 +129,7 @@ public static Piece createWhiteQueen(Board board) { * @return Bishop */ public static Piece createWhiteBishop(Board board, BoardPosition position) { - return create(board, position, WHITE, Bishop.class); + return create(board, position, WhiteBishop.class); } /** @@ -137,7 +140,7 @@ public static Piece createWhiteBishop(Board board, BoardPosition position) { * @return Knight */ public static Piece createWhiteKnight(Board board, BoardPosition position) { - return create(board, position, WHITE, Knight.class); + return create(board, position, WhiteKnight.class); } /** @@ -148,7 +151,7 @@ public static Piece createWhiteKnight(Board board, BoardPosition position) { * @return Rook */ public static Piece createWhiteRook(Board board, BoardPosition position) { - return create(board, position, WHITE, Rook.class); + return create(board, position, WhiteRook.class); } /** @@ -159,26 +162,24 @@ public static Piece createWhiteRook(Board board, BoardPosition position) { * @return Pawn */ public static Piece createWhitePawn(Board board, BoardPosition position) { - return create(board, position, WHITE, Pawn.class); + return create(board, position, WhitePawn.class); } /** * @param board Board informed. * @param position Board position informed. - * @param color Piece color informed. * @param classs Piece class informed. - * @return Piece + * @return Piece Piece instance * @throws PieceException Throw this exception in a cause of instantiation problems. * @see Board * @see BoardPosition - * @see PieceColor * @see Piece */ - private static Piece create(Board board, BoardPosition position, PieceColor color, Class classs) + private static Piece create(Board board, BoardPosition position, Class classs) throws PieceException { try { - Piece piece = classs.getConstructor(Board.class, PieceColor.class) - .newInstance(board, color) + Piece piece = classs.getConstructor(Board.class) + .newInstance(board) .moveTo(position); board.put(position, piece); return piece; diff --git a/core-java/src/main/java/chessgame/domain/model/Bishop.java b/core-java/src/main/java/chessgame/domain/model/AbstractBishop.java similarity index 68% rename from core-java/src/main/java/chessgame/domain/model/Bishop.java rename to core-java/src/main/java/chessgame/domain/model/AbstractBishop.java index 7f5afb9..f4dea15 100644 --- a/core-java/src/main/java/chessgame/domain/model/Bishop.java +++ b/core-java/src/main/java/chessgame/domain/model/AbstractBishop.java @@ -9,18 +9,20 @@ * @see chessgame.domain.Piece * @since September 2016 */ -public class Bishop extends AbstractPiece { +abstract class AbstractBishop extends AbstractPiece { /** * Bishop's constructor. * * @param board Board informed. * @param color Color informed. + * @param uniCode Unicode. + * @param htmlCode HTML code (decimal). * @see BoardPosition * @see PieceColor */ - public Bishop(Board board, PieceColor color) { - super(board, color); + AbstractBishop(Board board, PieceColor color, String uniCode, String htmlCode) { + super(board, color, uniCode, htmlCode); } /** diff --git a/core-java/src/main/java/chessgame/domain/model/King.java b/core-java/src/main/java/chessgame/domain/model/AbstractKing.java similarity index 80% rename from core-java/src/main/java/chessgame/domain/model/King.java rename to core-java/src/main/java/chessgame/domain/model/AbstractKing.java index f9edb9c..8a7764a 100644 --- a/core-java/src/main/java/chessgame/domain/model/King.java +++ b/core-java/src/main/java/chessgame/domain/model/AbstractKing.java @@ -12,18 +12,20 @@ * @see chessgame.domain.Piece * @since September 2016 */ -public class King extends AbstractPiece { +abstract class AbstractKing extends AbstractPiece { /** * King's constructor. * * @param board Board informed. * @param color Color informed. + * @param uniCode Unicode. + * @param htmlCode HTML code (decimal). * @see BoardPosition * @see PieceColor */ - public King(Board board, PieceColor color) { - super(board, color); + AbstractKing(Board board, PieceColor color, String uniCode, String htmlCode) { + super(board, color, uniCode, htmlCode); } /** diff --git a/core-java/src/main/java/chessgame/domain/model/Knight.java b/core-java/src/main/java/chessgame/domain/model/AbstractKnight.java similarity index 91% rename from core-java/src/main/java/chessgame/domain/model/Knight.java rename to core-java/src/main/java/chessgame/domain/model/AbstractKnight.java index 64af97c..e45f361 100644 --- a/core-java/src/main/java/chessgame/domain/model/Knight.java +++ b/core-java/src/main/java/chessgame/domain/model/AbstractKnight.java @@ -15,18 +15,20 @@ * @see chessgame.domain.Piece * @since September 2016 */ -public class Knight extends AbstractPiece { +abstract class AbstractKnight extends AbstractPiece { /** * Knight's constructor. * * @param board Board informed. * @param color Color informed. + * @param uniCode Unicode. + * @param htmlCode HTML code (decimal). * @see BoardPosition * @see PieceColor */ - public Knight(Board board, PieceColor color) { - super(board, color); + AbstractKnight(Board board, PieceColor color, String uniCode, String htmlCode) { + super(board, color, uniCode, htmlCode); } /** diff --git a/core-java/src/main/java/chessgame/domain/model/Pawn.java b/core-java/src/main/java/chessgame/domain/model/AbstractPawn.java similarity index 82% rename from core-java/src/main/java/chessgame/domain/model/Pawn.java rename to core-java/src/main/java/chessgame/domain/model/AbstractPawn.java index db2380d..ab9404c 100644 --- a/core-java/src/main/java/chessgame/domain/model/Pawn.java +++ b/core-java/src/main/java/chessgame/domain/model/AbstractPawn.java @@ -16,7 +16,7 @@ * @see chessgame.domain.Piece * @since September 2016 */ -public class Pawn extends AbstractPiece { +abstract class AbstractPawn extends AbstractPiece { private final Map> map; @@ -25,11 +25,13 @@ public class Pawn extends AbstractPiece { * * @param board Board informed. * @param color Color informed. + * @param uniCode Unicode. + * @param htmlCode HTML code (decimal). * @see BoardPosition * @see PieceColor */ - public Pawn(Board board, PieceColor color) { - super(board, color); + AbstractPawn(Board board, PieceColor color, String uniCode, String htmlCode) { + super(board, color, uniCode, htmlCode); map = Map.of( WHITE, BoardPosition::nextRow, @@ -45,7 +47,7 @@ public Set getAvailablePositions() { map.forEach((color, positionFunction) -> Optional.of(this) .filter(piece -> color.equals(piece.getColor())) - .map(Pawn::getPosition) + .map(AbstractPawn::getPosition) .map(positionFunction) .filter(this::isEmptyBoardPosition) .filter(availablePositions::add) diff --git a/core-java/src/main/java/chessgame/domain/model/AbstractPiece.java b/core-java/src/main/java/chessgame/domain/model/AbstractPiece.java index ee07f61..b547fd3 100644 --- a/core-java/src/main/java/chessgame/domain/model/AbstractPiece.java +++ b/core-java/src/main/java/chessgame/domain/model/AbstractPiece.java @@ -19,6 +19,10 @@ */ abstract class AbstractPiece implements Piece { + private String uniCode; + + private String htmlCode; + private final Board board; private final PieceColor color; @@ -33,11 +37,29 @@ abstract class AbstractPiece implements Piece { * @param board Board informed. * @param color Color informed. */ - AbstractPiece(Board board, PieceColor color) { + AbstractPiece(Board board, PieceColor color, String uniCode, String htmlCode) { super(); this.board = board; this.color = color; + this.uniCode = uniCode; + this.htmlCode = htmlCode; + } + + /** + * {@inheritDoc} + */ + @Override + public String getUniCode() { + return uniCode; + } + + /** + * {@inheritDoc} + */ + @Override + public String getHtmlCode() { + return htmlCode; } /** diff --git a/core-java/src/main/java/chessgame/domain/model/Queen.java b/core-java/src/main/java/chessgame/domain/model/AbstractQueen.java similarity index 76% rename from core-java/src/main/java/chessgame/domain/model/Queen.java rename to core-java/src/main/java/chessgame/domain/model/AbstractQueen.java index 9051cad..e25befb 100644 --- a/core-java/src/main/java/chessgame/domain/model/Queen.java +++ b/core-java/src/main/java/chessgame/domain/model/AbstractQueen.java @@ -10,18 +10,20 @@ * @see chessgame.domain.Piece * @since September 2016 */ -public class Queen extends AbstractPiece { +abstract class AbstractQueen extends AbstractPiece { /** * Queen's constructor. * * @param board Board informed. * @param color Color informed. + * @param uniCode Unicode. + * @param htmlCode HTML code (decimal). * @see BoardPosition * @see PieceColor */ - public Queen(Board board, PieceColor color) { - super(board, color); + AbstractQueen(Board board, PieceColor color, String uniCode, String htmlCode) { + super(board, color, uniCode, htmlCode); } /** diff --git a/core-java/src/main/java/chessgame/domain/model/Rook.java b/core-java/src/main/java/chessgame/domain/model/AbstractRook.java similarity index 75% rename from core-java/src/main/java/chessgame/domain/model/Rook.java rename to core-java/src/main/java/chessgame/domain/model/AbstractRook.java index 030263b..8120c57 100644 --- a/core-java/src/main/java/chessgame/domain/model/Rook.java +++ b/core-java/src/main/java/chessgame/domain/model/AbstractRook.java @@ -10,18 +10,20 @@ * @see chessgame.domain.Piece * @since September 2016 */ -public class Rook extends AbstractPiece { +abstract class AbstractRook extends AbstractPiece { /** * Rook's constructor. * * @param board Board informed. * @param color Color informed. + * @param uniCode Unicode. + * @param htmlCode HTML code (decimal). * @see BoardPosition * @see PieceColor */ - public Rook(Board board, PieceColor color) { - super(board, color); + AbstractRook(Board board, PieceColor color, String uniCode, String htmlCode) { + super(board, color, uniCode, htmlCode); } /** diff --git a/core-java/src/main/java/chessgame/domain/model/BlackBishop.java b/core-java/src/main/java/chessgame/domain/model/BlackBishop.java new file mode 100644 index 0000000..23fdef4 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/BlackBishop.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.BLACK; + +public class BlackBishop extends AbstractBishop { + + public BlackBishop(Board board) { + super(board, BLACK, "\u265D", "♝"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/BlackKing.java b/core-java/src/main/java/chessgame/domain/model/BlackKing.java new file mode 100644 index 0000000..5b708fe --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/BlackKing.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.BLACK; + +public class BlackKing extends AbstractKing { + + public BlackKing(Board board) { + super(board, BLACK, "\u265A", "♚"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/BlackKnight.java b/core-java/src/main/java/chessgame/domain/model/BlackKnight.java new file mode 100644 index 0000000..b4ef0b0 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/BlackKnight.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.BLACK; + +public class BlackKnight extends AbstractKnight { + + public BlackKnight(Board board) { + super(board, BLACK, "\u265E", "♞"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/BlackPawn.java b/core-java/src/main/java/chessgame/domain/model/BlackPawn.java new file mode 100644 index 0000000..b7ea5f2 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/BlackPawn.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.BLACK; + +public class BlackPawn extends AbstractPawn { + + public BlackPawn(Board board) { + super(board, BLACK, "\u265F", "♟"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/BlackQueen.java b/core-java/src/main/java/chessgame/domain/model/BlackQueen.java new file mode 100644 index 0000000..2dbed94 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/BlackQueen.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.BLACK; + +public class BlackQueen extends AbstractQueen { + + public BlackQueen(Board board) { + super(board, BLACK, "\u265B", "♛"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/BlackRook.java b/core-java/src/main/java/chessgame/domain/model/BlackRook.java new file mode 100644 index 0000000..6aff7e3 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/BlackRook.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.BLACK; + +public class BlackRook extends AbstractRook { + + public BlackRook(Board board) { + super(board, BLACK, "\u265C", "♜"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/WhiteBishop.java b/core-java/src/main/java/chessgame/domain/model/WhiteBishop.java new file mode 100644 index 0000000..b91120f --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/WhiteBishop.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.WHITE; + +public class WhiteBishop extends AbstractBishop { + + public WhiteBishop(Board board) { + super(board, WHITE, "\u2657", "♗"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/WhiteKing.java b/core-java/src/main/java/chessgame/domain/model/WhiteKing.java new file mode 100644 index 0000000..319fb07 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/WhiteKing.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.WHITE; + +public class WhiteKing extends AbstractKing { + + public WhiteKing(Board board) { + super(board, WHITE, "\u2654", "♔"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/WhiteKnight.java b/core-java/src/main/java/chessgame/domain/model/WhiteKnight.java new file mode 100644 index 0000000..91da715 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/WhiteKnight.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.WHITE; + +public class WhiteKnight extends AbstractKnight { + + public WhiteKnight(Board board) { + super(board, WHITE, "\u2658", "♘"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/WhitePawn.java b/core-java/src/main/java/chessgame/domain/model/WhitePawn.java new file mode 100644 index 0000000..b010b6c --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/WhitePawn.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.WHITE; + +public class WhitePawn extends AbstractPawn { + + public WhitePawn(Board board) { + super(board, WHITE, "\u2659", "♙"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/WhiteQueen.java b/core-java/src/main/java/chessgame/domain/model/WhiteQueen.java new file mode 100644 index 0000000..b6b4d15 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/WhiteQueen.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.WHITE; + +public class WhiteQueen extends AbstractQueen { + + public WhiteQueen(Board board) { + super(board, WHITE, "\u2655", "♕"); + } +} diff --git a/core-java/src/main/java/chessgame/domain/model/WhiteRook.java b/core-java/src/main/java/chessgame/domain/model/WhiteRook.java new file mode 100644 index 0000000..7708725 --- /dev/null +++ b/core-java/src/main/java/chessgame/domain/model/WhiteRook.java @@ -0,0 +1,10 @@ +package chessgame.domain.model; + +import static chessgame.domain.model.PieceColor.WHITE; + +public class WhiteRook extends AbstractRook { + + public WhiteRook(Board board) { + super(board, WHITE, "\u2656", "♖"); + } +} diff --git a/core-java/src/test/java/chessgame/domain/model/BishopWhileTest.java b/core-java/src/test/java/chessgame/domain/model/WhiteBishopTest.java similarity index 94% rename from core-java/src/test/java/chessgame/domain/model/BishopWhileTest.java rename to core-java/src/test/java/chessgame/domain/model/WhiteBishopTest.java index b696778..c7fdb46 100644 --- a/core-java/src/test/java/chessgame/domain/model/BishopWhileTest.java +++ b/core-java/src/test/java/chessgame/domain/model/WhiteBishopTest.java @@ -17,12 +17,13 @@ import static chessgame.domain.model.BoardPosition.G2; import static chessgame.domain.model.BoardPosition.H1; import static chessgame.domain.model.BoardPosition.H7; +import static chessgame.domain.model.PieceColor.WHITE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -public class BishopWhileTest { +public class WhiteBishopTest { private static final BoardPosition INITIAL_POSITION = F1; @@ -39,12 +40,12 @@ public void setUp() { @Test public void createInstanceTest() { - assertTrue(whiteBishop instanceof Bishop); + assertTrue(whiteBishop instanceof WhiteBishop); } @Test public void whiteColorTest() { - assertEquals(PieceColor.WHITE, whiteBishop.getColor()); + assertEquals(WHITE, whiteBishop.getColor()); } @Test diff --git a/core-java/src/test/java/chessgame/domain/model/KingWhiteTest.java b/core-java/src/test/java/chessgame/domain/model/WhiteKingTest.java similarity index 96% rename from core-java/src/test/java/chessgame/domain/model/KingWhiteTest.java rename to core-java/src/test/java/chessgame/domain/model/WhiteKingTest.java index cd910c1..4251d58 100644 --- a/core-java/src/test/java/chessgame/domain/model/KingWhiteTest.java +++ b/core-java/src/test/java/chessgame/domain/model/WhiteKingTest.java @@ -34,12 +34,13 @@ import static chessgame.domain.model.BoardPosition.H6; import static chessgame.domain.model.BoardPosition.H7; import static chessgame.domain.model.BoardPosition.H8; +import static chessgame.domain.model.PieceColor.WHITE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -public class KingWhiteTest { +public class WhiteKingTest { private static final BoardPosition INITIAL_POSITION = E1; @@ -56,12 +57,12 @@ public void init() { @Test public void createInstanceTest() { - assertTrue(whiteKing instanceof King); + assertTrue(whiteKing instanceof WhiteKing); } @Test public void whiteColorTest() { - assertEquals(PieceColor.WHITE, whiteKing.getColor()); + assertEquals(WHITE, whiteKing.getColor()); } @Test diff --git a/core-java/src/test/java/chessgame/domain/model/KnightWhiteTest.java b/core-java/src/test/java/chessgame/domain/model/WhiteKnightTest.java similarity index 94% rename from core-java/src/test/java/chessgame/domain/model/KnightWhiteTest.java rename to core-java/src/test/java/chessgame/domain/model/WhiteKnightTest.java index 3ec48aa..1313a43 100644 --- a/core-java/src/test/java/chessgame/domain/model/KnightWhiteTest.java +++ b/core-java/src/test/java/chessgame/domain/model/WhiteKnightTest.java @@ -21,12 +21,13 @@ import static chessgame.domain.model.BoardPosition.G5; import static chessgame.domain.model.BoardPosition.H1; import static chessgame.domain.model.BoardPosition.H7; +import static chessgame.domain.model.PieceColor.WHITE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -public class KnightWhiteTest { +public class WhiteKnightTest { private static final BoardPosition INITIAL_POSITION = B1; @@ -43,12 +44,12 @@ public void setUp() { @Test public void createInstanceTest() { - assertTrue(whiteKnight instanceof Knight); + assertTrue(whiteKnight instanceof WhiteKnight); } @Test public void whiteColorTest() { - assertEquals(PieceColor.WHITE, whiteKnight.getColor()); + assertEquals(WHITE, whiteKnight.getColor()); } @Test diff --git a/core-java/src/test/java/chessgame/domain/model/PawnWhiteTest.java b/core-java/src/test/java/chessgame/domain/model/WhitePawnTest.java similarity index 73% rename from core-java/src/test/java/chessgame/domain/model/PawnWhiteTest.java rename to core-java/src/test/java/chessgame/domain/model/WhitePawnTest.java index 77b8cfa..7703974 100644 --- a/core-java/src/test/java/chessgame/domain/model/PawnWhiteTest.java +++ b/core-java/src/test/java/chessgame/domain/model/WhitePawnTest.java @@ -7,11 +7,20 @@ import java.util.Set; import static chessgame.domain.factory.PieceFactory.createWhitePawn; -import static chessgame.domain.model.BoardPosition.*; +import static chessgame.domain.model.BoardPosition.D2; +import static chessgame.domain.model.BoardPosition.D3; +import static chessgame.domain.model.BoardPosition.D4; +import static chessgame.domain.model.BoardPosition.D5; +import static chessgame.domain.model.BoardPosition.D6; +import static chessgame.domain.model.BoardPosition.D7; +import static chessgame.domain.model.BoardPosition.D8; import static chessgame.domain.model.PieceColor.WHITE; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; -public class PawnWhiteTest { +public class WhitePawnTest { private static final BoardPosition INITIAL_POSITION = D2; @@ -28,7 +37,7 @@ public void setUp() { @Test public void createInstanceTest() { - assertTrue(whitePawn instanceof Pawn); + assertTrue(whitePawn instanceof WhitePawn); } @Test diff --git a/core-java/src/test/java/chessgame/domain/model/QueenWhiteTest.java b/core-java/src/test/java/chessgame/domain/model/WhiteQueenTest.java similarity index 94% rename from core-java/src/test/java/chessgame/domain/model/QueenWhiteTest.java rename to core-java/src/test/java/chessgame/domain/model/WhiteQueenTest.java index 6a746f5..625eb7a 100644 --- a/core-java/src/test/java/chessgame/domain/model/QueenWhiteTest.java +++ b/core-java/src/test/java/chessgame/domain/model/WhiteQueenTest.java @@ -14,12 +14,13 @@ import static chessgame.domain.model.BoardPosition.D1; import static chessgame.domain.model.BoardPosition.H1; import static chessgame.domain.model.BoardPosition.H8; +import static chessgame.domain.model.PieceColor.WHITE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -public class QueenWhiteTest { +public class WhiteQueenTest { private static final BoardPosition INITIAL_POSITION = D1; @@ -36,12 +37,12 @@ public void setUp() { @Test public void createInstanceTest() { - assertTrue(whiteQueen instanceof Queen); + assertTrue(whiteQueen instanceof WhiteQueen); } @Test public void whiteColorTest() { - assertEquals(PieceColor.WHITE, whiteQueen.getColor()); + assertEquals(WHITE, whiteQueen.getColor()); } @Test diff --git a/core-java/src/test/java/chessgame/domain/model/RookWhiteTest.java b/core-java/src/test/java/chessgame/domain/model/WhiteRookTest.java similarity index 95% rename from core-java/src/test/java/chessgame/domain/model/RookWhiteTest.java rename to core-java/src/test/java/chessgame/domain/model/WhiteRookTest.java index 116fc55..5e41836 100644 --- a/core-java/src/test/java/chessgame/domain/model/RookWhiteTest.java +++ b/core-java/src/test/java/chessgame/domain/model/WhiteRookTest.java @@ -24,12 +24,13 @@ import static chessgame.domain.model.BoardPosition.H6; import static chessgame.domain.model.BoardPosition.H7; import static chessgame.domain.model.BoardPosition.H8; +import static chessgame.domain.model.PieceColor.WHITE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -public class RookWhiteTest { +public class WhiteRookTest { private static final BoardPosition INITIAL_POSITION = A1; @@ -46,12 +47,12 @@ public void setUp() { @Test public void createInstanceTest() { - assertTrue(whiteRook instanceof Rook); + assertTrue(whiteRook instanceof WhiteRook); } @Test public void whiteColorTest() { - assertEquals(PieceColor.WHITE, whiteRook.getColor()); + assertEquals(WHITE, whiteRook.getColor()); } @Test diff --git a/pom.xml b/pom.xml index 68e9112..0effe98 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ br.opensource.game.chessgame chessgame pom - 1.0.0.RELEASE + 1.1.0-SNAPSHOT [CHESS][POM] Chess Game Project https://github.com/emprestes/chessgame/wiki From 48a7e119a94dac7058e7ef8c38b7969c54359a12 Mon Sep 17 00:00:00 2001 From: Edson Prestes Date: Wed, 7 Aug 2019 13:56:17 +0200 Subject: [PATCH 2/2] #35 Unicode and HTML code (decimal) supported. --- core-java/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core-java/pom.xml b/core-java/pom.xml index 4fc9e49..809f801 100644 --- a/core-java/pom.xml +++ b/core-java/pom.xml @@ -7,7 +7,7 @@ br.opensource.game.chessgame chessgame - 1.1.0-SNAPSHOT + 1.1-SNAPSHOT chessgame-core-java diff --git a/pom.xml b/pom.xml index 0effe98..f0739ce 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ br.opensource.game.chessgame chessgame pom - 1.1.0-SNAPSHOT + 1.1-SNAPSHOT [CHESS][POM] Chess Game Project https://github.com/emprestes/chessgame/wiki