All files / main randomPlayer.js

100% Statements 37/37
100% Branches 8/8
100% Functions 4/4
100% Lines 37/37

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 383x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 2x 2x 3x 3x 3x 3x 3x 3x 2x 2x 2x 2x 2x 3x 5x 5x 5x 5x 5x  
import { PieceColorEnum } from '../piece/pieceColorEnum.js';
 
const randomPlayer = createRandomPlayer();
 
function createRandomPlayer() {
 
    function getMovement(board) {
        let origins, origin, destinations;
 
        if (board.isColorOnCheck(PieceColorEnum.Black))
            return board.getValidMovementNotCausingCheck(PieceColorEnum.Black);
 
        origins = board.getAllSquaresOfBlackPieces();
 
        do {
            origin = generateRandomMovement(origins);
            destinations = board.movementsFromTheCoordinate(origin);
        } while(destinations.length === 0);
 
        return {
            origin: origin,
            destination: generateRandomMovement(destinations)
        };
    }
 
    function generateRandomMovement(squares){
        return squares[Math.floor(Math.random()*(squares.length))];
    }
 
    return  {
        getMovement
    }
}
 
export {
    randomPlayer
}