Package Search
Interface GameSearch
-
- All Known Implementing Classes:
DomineeringSearch
public interface GameSearchInterface for defining game search functionality.- Since:
- 2023-12-01
- Version:
- 1.0
- Author:
- Laamiri Ouail & Hajar Sadik
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description bytegetNextPlayer()Get the next player to make a move.bytegetNumberOfPosibleMove(byte player)Get the number of possible moves for the specified player.bytegetNumbreOfMoveByPlayer(byte player)Get the number of moves made by the specified player.java.util.List<Board>getValideStates(byte player)Get a list of valid game states for the specified player.java.util.List<int[]>getValidMoves(java.lang.String[][] state, byte player)Get a list of valid moves for the specified player based on the current state.java.util.List<Move>getValidMovesi(byte player)Get a list of valid moves for the specified player.intheuristic(int[] move)Calculate the heuristic value for a move.voidmakeHelpMove(int x, int y, byte player)Make a helper move on the game board.voidmakeMove(int y, int x, byte player)Make a move on the game board.int[]maxValue(java.lang.String[][] state, int depth, int alpha, int beta, int[] move)Get the maximum value for a state in a minimax search.int[]minmax(java.lang.String[][] state, int depth, boolean myMove, int[] alpha, int[] beta)Perform a minimax search on the game state.int[]minValue(java.lang.String[][] state, int depth, int alpha, int beta, int[] move)Get the minimum value for a state in a minimax search.byteplayerWin()Check if a player has won the game.booleanplayHelpMove(int x, int y)Play a move on the game board for a helper move.booleanplayMove(int x, int y)Play a move on the game board.
-
-
-
Method Detail
-
getNumberOfPosibleMove
byte getNumberOfPosibleMove(byte player)
Get the number of possible moves for the specified player.- Parameters:
player- The player for whom to get the number of possible moves.- Returns:
- The number of possible moves for the player.
-
getNumbreOfMoveByPlayer
byte getNumbreOfMoveByPlayer(byte player)
Get the number of moves made by the specified player.- Parameters:
player- The player for whom to get the number of moves.- Returns:
- The number of moves made by the player.
-
getNextPlayer
byte getNextPlayer()
Get the next player to make a move.- Returns:
- The next player to make a move.
-
getValidMovesi
java.util.List<Move> getValidMovesi(byte player)
Get a list of valid moves for the specified player.- Parameters:
player- The player for whom to get valid moves.- Returns:
- A list of valid moves for the player.
-
getValidMoves
java.util.List<int[]> getValidMoves(java.lang.String[][] state, byte player)Get a list of valid moves for the specified player based on the current state.- Parameters:
state- The current state of the game.player- The player for whom to get valid moves.- Returns:
- A list of valid moves for the player.
-
getValideStates
java.util.List<Board> getValideStates(byte player)
Get a list of valid game states for the specified player.- Parameters:
player- The player for whom to get valid game states.- Returns:
- A list of valid game states for the player.
-
playerWin
byte playerWin()
Check if a player has won the game.- Returns:
- The winning player or 0 if no player has won.
-
makeMove
void makeMove(int y, int x, byte player)Make a move on the game board.- Parameters:
y- The y-coordinate of the move.x- The x-coordinate of the move.player- The player making the move.
-
playMove
boolean playMove(int x, int y)Play a move on the game board.- Parameters:
x- The x-coordinate of the move.y- The y-coordinate of the move.- Returns:
- True if the move was played successfully, false otherwise.
-
maxValue
int[] maxValue(java.lang.String[][] state, int depth, int alpha, int beta, int[] move)Get the maximum value for a state in a minimax search.- Parameters:
state- The current state of the game.depth- The depth of the search.alpha- The alpha value for pruning.beta- The beta value for pruning.move- The best move found so far.- Returns:
- An array containing the best move and its value.
-
minValue
int[] minValue(java.lang.String[][] state, int depth, int alpha, int beta, int[] move)Get the minimum value for a state in a minimax search.- Parameters:
state- The current state of the game.depth- The depth of the search.alpha- The alpha value for pruning.beta- The beta value for pruning.move- The best move found so far.- Returns:
- An array containing the best move and its value.
-
minmax
int[] minmax(java.lang.String[][] state, int depth, boolean myMove, int[] alpha, int[] beta)Perform a minimax search on the game state.- Parameters:
state- The current state of the game.depth- The depth of the search.myMove- True if it's the current player's move, false otherwise.alpha- The alpha value for pruning.beta- The beta value for pruning.- Returns:
- An array containing the best move and its value.
-
playHelpMove
boolean playHelpMove(int x, int y)Play a move on the game board for a helper move.- Parameters:
x- The x-coordinate of the helper move.y- The y-coordinate of the helper move.- Returns:
- True if the helper move was played successfully, false otherwise.
-
makeHelpMove
void makeHelpMove(int x, int y, byte player)Make a helper move on the game board.- Parameters:
x- The x-coordinate of the helper move.y- The y-coordinate of the helper move.player- The player making the helper move.
-
heuristic
int heuristic(int[] move)
Calculate the heuristic value for a move.- Parameters:
move- An array containing the move coordinates and value.- Returns:
- The heuristic value for the move.
-
-