package com.captstudios.games.tafl.core.es.model.rules; import com.badlogic.gdx.utils.Array; import com.captstudios.games.tafl.core.enums.DrawReasonEnum; import com.captstudios.games.tafl.core.es.model.TaflMatchObserver; import com.captstudios.games.tafl.core.es.model.ai.optimization.BitBoard; import com.captstudios.games.tafl.core.es.model.ai.optimization.moves.Move; import com.captstudios.games.tafl.core.es.model.ai.optimization.moves.RulesChecker; public interface RulesEngine extends TaflMatchObserver, RulesChecker { public int getFirstTurn(); public BitBoard getCapturedPieces(Move move); public int checkWinner(); public DrawReasonEnum checkDraw(int team); public BitBoard getLegalMoves(int team, int source); public Array<Move> allLegalMoves(int team); public boolean isMoveLegal(int team, int source, int destination); public boolean isVulnerable(int team, int cellId); public boolean teamCanMoveToLocation(int team, int cellId); }