0.1.0 • Published 7 months ago

lb-optimal-turn v0.1.0

Weekly downloads
-
License
-
Repository
-
Last release
7 months ago

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