From 76d4168038de23e5d6083d4e8f0504fbf31d15a3 Mon Sep 17 00:00:00 2001 From: Janis Date: Mon, 23 Mar 2026 21:29:41 +0100 Subject: [PATCH] feat: add GameRules stub with PositionStatus enum --- .../de/nowchess/chess/logic/GameRules.scala | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 modules/core/src/main/scala/de/nowchess/chess/logic/GameRules.scala diff --git a/modules/core/src/main/scala/de/nowchess/chess/logic/GameRules.scala b/modules/core/src/main/scala/de/nowchess/chess/logic/GameRules.scala new file mode 100644 index 0000000..da42ea5 --- /dev/null +++ b/modules/core/src/main/scala/de/nowchess/chess/logic/GameRules.scala @@ -0,0 +1,17 @@ +package de.nowchess.chess.logic + +import de.nowchess.api.board.* + +enum PositionStatus: + case Normal, InCheck, Mated, Drawn + +object GameRules: + + /** True if `color`'s king is under attack on this board. */ + def isInCheck(board: Board, color: Color): Boolean = false + + /** All (from, to) moves for `color` that do not leave their own king in check. */ + def legalMoves(board: Board, color: Color): Set[(Square, Square)] = Set.empty + + /** Position status for the side whose turn it is (`color`). */ + def gameStatus(board: Board, color: Color): PositionStatus = PositionStatus.Normal