lb-optimal-turn v0.1.0
Last Name and First Name: Kalcheuski Daniil
Added tests and library which selects the optimal move for the player
Documentation for the library:
getOptimalTurn(gameField, player) A function that finds the optimal move for the player in the current situation.
Parameters:
gameField (array of 9 elements): The current state of the playing field, represented by an array of 9 numbers (indexes from 0 to 8).
-1 is an empty cell. 0 is the cell occupied by the player (player 0). 1 is the cell occupied by the opponent (player 1).
player (number): The player for whom a move is being sought (may be 0 or 1).
Return value: The index of the cell (from 0 to 8) in which the player should place the symbol in order to achieve an optimal result.
Description: Win check: The function first checks whether the current player can win in one turn, and if so, returns the index of the winning cell. Blocking the opponent: If the opponent can win on the next turn, the function blocks him by returning the index of the cell to block. Center: If none of the players can win, the function checks whether the central square (index 4) is available. If so, she chooses it. Corners: If the center is occupied, the function tries to occupy one of the corners (cells with indexes 0, 2, 6, 8). Empty cell: If none of the preferred options is available, the function selects the first available empty cell.
isWinner(gameField, player) A function that checks whether a player is the winner on the current playing field.
Parameters: gameField (array of 9 elements): The current state of the playing field, as described above. player (number): The player for whom victory is checked (may be 0 or 1).
Return value: true if the player is the winner. false if the player has not won.
Description: The function checks all possible winning combinations on the field and returns true if the player occupies all the cells in one of the combinations.
Download or clone the repository: git clone cd Install dependencies: npm install Build the project: npm run build Start the development server: npm start
7 months ago