feat: NCS-13 Implement Threefold Repetition (#31)
Build & Test (NowChessSystems) TeamCity build finished
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #31
This commit was merged in pull request #31.
This commit is contained in:
@@ -36,6 +36,7 @@ class GUIObserver(private val boardView: ChessBoardView) extends Observer:
|
||||
case DrawReason.Stalemate => "Stalemate! The game is a draw."
|
||||
case DrawReason.InsufficientMaterial => "Draw by insufficient material."
|
||||
case DrawReason.FiftyMoveRule => "Draw claimed under the 50-move rule."
|
||||
case DrawReason.ThreefoldRepetition => "Draw by threefold repetition."
|
||||
case DrawReason.Agreement => "Draw by agreement."
|
||||
showAlert(AlertType.Information, "Game Over", msg)
|
||||
|
||||
@@ -52,6 +53,9 @@ class GUIObserver(private val boardView: ChessBoardView) extends Observer:
|
||||
case e: FiftyMoveRuleAvailableEvent =>
|
||||
boardView.showMessage("50-move rule is now available — type 'draw' to claim.")
|
||||
|
||||
case e: ThreefoldRepetitionAvailableEvent =>
|
||||
boardView.showMessage("Threefold repetition is now available — type 'draw' to claim.")
|
||||
|
||||
case e: MoveUndoneEvent =>
|
||||
boardView.updateBoard(e.context.board, e.context.turn)
|
||||
boardView.showMessage(s"↶ Undo: ${e.pgnNotation}")
|
||||
|
||||
@@ -50,6 +50,7 @@ class TerminalUI(engine: GameEngine) extends Observer:
|
||||
case DrawReason.Stalemate => "Stalemate! The game is a draw."
|
||||
case DrawReason.InsufficientMaterial => "Draw by insufficient material."
|
||||
case DrawReason.FiftyMoveRule => "Draw claimed under the 50-move rule."
|
||||
case DrawReason.ThreefoldRepetition => "Draw by threefold repetition."
|
||||
case DrawReason.Agreement => "Draw by agreement."
|
||||
println(msg)
|
||||
println()
|
||||
@@ -70,6 +71,9 @@ class TerminalUI(engine: GameEngine) extends Observer:
|
||||
case _: FiftyMoveRuleAvailableEvent =>
|
||||
println("50-move rule is now available — type 'draw' to claim.")
|
||||
|
||||
case _: ThreefoldRepetitionAvailableEvent =>
|
||||
println("Threefold repetition is now available — type 'draw' to claim.")
|
||||
|
||||
case e: PgnLoadedEvent =>
|
||||
println("PGN loaded successfully.")
|
||||
println()
|
||||
|
||||
Reference in New Issue
Block a user