UNPKG

baskin-lib

Version:
69 lines (68 loc) 2.54 kB
export interface PlayLogEntry { player: number; lastCall: number; } export declare type PlayLog = PlayLogEntry[]; /** * * @param playLog Current game play log. * @param numPlayer Number of players. * @returns Current player who need to call next number. */ export declare function getCurrentPlayer(playLog: PlayLog, numPlayer: number): number; /** * * @param playLog Current game play log. * @returns Last player who called number. Return `undefined` if playLog is empty. */ export declare function getLastPlayer(playLog: PlayLog): number | undefined; /** * * @param playLog Current game play log. * @param numEnd Number of players. * @returns Return true if game is end. Else, return false. */ export declare function gameIsEnd(playLog: PlayLog, numEnd: number): boolean; /** * * @param playLog Current game play log * @returns Recently called number. */ export declare function getCurrentNum(playLog: PlayLog): number; /** * * @param newNum Called number without regarding ending number * @param numEnd The last number of the game * @param playerTurn Player number on this turn * @returns New PlayLogEntry after call */ export declare function makePlayLogEntry(newNum: number, numEnd: number, playerTurn: number): PlayLogEntry; /** * * @param loseMat Lose matrix * @param playLog Current game play log * @param maxCall Maximum number of call in once * @param numEnd The last number of the game * @param aiTurn Player number of AI playing this turn * @returns Updated playLog after one AI turn */ export declare function handleAiTurnOnce(loseMat: number[][], playLog: PlayLog, maxCall: number, numEnd: number, aiTurn: number): PlayLogEntry; /** * * @param playLog Current game play log * @param numChoose Human chose to call numbers up to `numChoose` * @param numEnd The last number of the game * @param playerTurn Human player turn * @returns Updated playlog after human play. Doesn't mutate original playLog. */ export declare function handlePlayerTurn(playLog: PlayLog, numChoose: number, numEnd: number, playerTurn: number): PlayLog; /** * * @param loseMat Lose rate matrix for all game states * @param playLog Current game play log * @param maxCall Maximum number of call in once * @param numEnd The last number of the game * @param playerTurn Human player turn * @returns Updated playlog after ai play. Doesn't mutate original `playLog` */ export declare function handleAiTurns(loseMat: number[][], playLog: PlayLog, maxCall: number, numEnd: number, playerTurn: number): PlayLog;