UNPKG

@reis/seki

Version:

Seki – A modern javascript based Go board renderer and player, that is simple to use, extensible, compact and intuitive.

46 lines (42 loc) 1.25 kB
import PlayerModeStatic from './modes/player-mode-static.js' import PlayerModePlay from './modes/player-mode-play.js' import PlayerModeReplay from './modes/player-mode-replay.js' import PlayerModeEdit from './modes/player-mode-edit.js' import PlayerModeScore from './modes/player-mode-score.js' import PlayerModeSolve from './modes/player-mode-solve.js' import {playerModes} from '../constants/player.js' /** * Stone factory class */ export default class PlayerModeFactory { /** * Get pl;ayer mode class to use */ static getClass(mode) { switch (mode) { case playerModes.PLAY: return PlayerModePlay case playerModes.REPLAY: return PlayerModeReplay case playerModes.EDIT: return PlayerModeEdit case playerModes.SCORE: return PlayerModeScore case playerModes.SOLVE: return PlayerModeSolve case playerModes.STATIC: return PlayerModeStatic default: throw new Error(`Unrecognized player mode: ${mode}`) } } /** * Create player mode instance */ static create(mode, ...args) { const PlayerModeClass = this.getClass(mode) const playerMode = new PlayerModeClass(...args) playerMode.init() return playerMode } }