UNPKG

tsgammon-core

Version:

A Backgammon library for Typescript, formerly developed as a part of tsgammon-ui

64 lines 2.51 kB
import { BoardState } from '../BoardState'; import { BoardStateNode } from '../BoardStateNode'; import { CubeState } from '../CubeState'; import { Evaluator } from './Evaluator'; /** * チェッカープレイとキューブアクションを判断する思考エンジンが実装するインターフェース */ export declare type GammonEngine = { /** * ゲームの開始前に一度呼ばれる */ initialized(): void; /** * ダブルをするかどうかを返す * * @param boardState 局面 * @param cubeState キューブ(値はダブル前の値) * @returns ダブルするならisDouble=trueを返す */ cubeAction(boardState: BoardState, cubeState: CubeState): { isDouble: boolean; }; /** * テイクするかどうかを返す * * @param boardState 局面 * @param cubeState キューブ(値はダブル前の値) * @returns テイクするならisDouble=trueを返す */ cubeResponse(boardState: BoardState, cubeState: CubeState): { isTake: boolean; }; /** * チェッカープレイを行い、その結果の局面を返す。 * * @param boardStateNode 局面 * @returns プレイ後の局面(引数のboardStateNodeと同じ視点)。boardStateNodeの子局面が想定されているが、任意の局面を設定してもよい。また、手がない場合は引数をそのまま返す。 */ checkerPlay(boardStateNode: BoardStateNode): BoardStateNode; /** * ゲーム終了後に一度呼ばれる。 * * @param boardStateNode 局面 */ endOfGame(boardStateNode: BoardStateNode): void; }; /** * 乱数エンジンを返す。キューブアクションは判断せず(ダブルはしない・常にテイク)、 * チェッカープレイは候補手からランダムに選ぶ。 * * @returns 乱数エンジン */ export declare function randomEngine(): GammonEngine; /** * 局面評価をする関数から、簡易なGammonEngineを生成する。 * * キューブアクションは、期待値0.40(勝率70%)でダブル、-0.5(勝率25%)より上でテイク。 * * @param evaluate 局面評価をする関数 * @returns GammonEngine */ export declare function simpleEvalEngine(evaluate: (board: BoardState) => number): GammonEngine; export declare function simpleEvalEngineWithEvaluator(ev: Evaluator): GammonEngine; //# sourceMappingURL=GammonEngine.d.ts.map