refactor(core): enhance MoveType to support capture flag and update related logic
Build & Test (NowChessSystems) TeamCity build failed
Build & Test (NowChessSystems) TeamCity build failed
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
package de.nowchess.api.game
|
||||
|
||||
import de.nowchess.api.board.{PieceType, Square}
|
||||
import de.nowchess.api.move.PromotionPiece
|
||||
|
||||
/** A single move recorded in game history and PGN workflows. */
|
||||
case class HistoryMove(
|
||||
from: Square,
|
||||
to: Square,
|
||||
castleSide: Option[String] = None,
|
||||
promotionPiece: Option[PromotionPiece] = None,
|
||||
pieceType: PieceType = PieceType.Pawn,
|
||||
isCapture: Boolean = false
|
||||
)
|
||||
|
||||
@@ -9,7 +9,7 @@ enum PromotionPiece:
|
||||
/** Classifies special move semantics beyond a plain quiet move or capture. */
|
||||
enum MoveType:
|
||||
/** A normal move or capture with no special rule. */
|
||||
case Normal
|
||||
case Normal(isCapture: Boolean = false)
|
||||
/** Kingside castling (O-O). */
|
||||
case CastleKingside
|
||||
/** Queenside castling (O-O-O). */
|
||||
@@ -29,5 +29,5 @@ enum MoveType:
|
||||
final case class Move(
|
||||
from: Square,
|
||||
to: Square,
|
||||
moveType: MoveType = MoveType.Normal
|
||||
moveType: MoveType = MoveType.Normal()
|
||||
)
|
||||
|
||||
@@ -11,7 +11,12 @@ class MoveTest extends AnyFunSuite with Matchers:
|
||||
|
||||
test("Move defaults moveType to Normal") {
|
||||
val m = Move(e2, e4)
|
||||
m.moveType shouldBe MoveType.Normal
|
||||
m.moveType shouldBe MoveType.Normal()
|
||||
}
|
||||
|
||||
test("MoveType.Normal supports capture flag") {
|
||||
val m = Move(e2, e4, MoveType.Normal(isCapture = true))
|
||||
m.moveType shouldBe MoveType.Normal(true)
|
||||
}
|
||||
|
||||
test("Move stores from and to squares") {
|
||||
|
||||
Reference in New Issue
Block a user