UNPKG

react-chessground

Version:

React warp for chessground <https://github.com/ornicar/chessground>

139 lines (101 loc) 4.56 kB
<img src="https://github.com/paiyou-network/react-chessground/raw/master/screenshot/chess.png" width="350px" /> <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/promotion.gif" width=400px /> <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/undo.gif" width=400px /> <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/reset.gif" width=400px /> # React Chessground <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/chess.png" width="400px" /> <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/initial.png" width="400px" /> **react-chessground** is a react wrapper of the awesome [Chessground](https://github.com/ornicar/chessground) ## Installation ``` npm install --save react-chessground ``` ## Example - An example of playing with random opponent is provided in [example](https://github.com/paiyou-network/react-chessground/tree/master/example) ## Usage ```js import Chessground from 'react-chessground' import 'react-chessground/dist/assets/chessground.css' import 'react-chessground/dist/assets/theme.css' // Or your own chess theme class Demo extends React.Component { render () { return <Chessground /> } } ``` ## Properties * `onMove` - _function_ Function is called when user moves a piece to a new position. Receives two parameters: * `from` - _string_ Previous square position * `to` - _string_ New square position * `randomMove` - _function_ Function is called when computer moves a piece to a new position. Contains two objects: * `moves` - _object_ Stores all valid moves * `move` - _object_ Generates a move chosen from `moves` randomly * `promotion` - _function_ Provides choices for pawn's promotion. Receive one parameter: * `e` - _string_ Stores pieces user might want to choose upon promotion * `reset` - _function_ Function is called when reset button clicked * `undo` - _function_ Function is called when undo button clicked. Disabled when game is over * `myColor` - _string_ Color for user.(default: `white`) Reset: Reset the board to the initial starting position. ```js reset = () => { this.chess.reset() this.setState({ fen: this.chess.fen() }) } ``` Undo: Take back the last half-move. ```js undo = () => { this.chess.undo() this.setState({ fen: this.chess.fen() }) } ``` userPlaytime: The total amount of time a player in current game. ```js userPlaytime = setInterval(() => { const { isPaused, time } = this.state let min = Math.floor(time / 60) let sec = time - min * 60 if (min < 10) { min = `0${min}` } if (sec < 10) { sec = `0${sec}` } const message = `${min}:${sec}` if (!isPaused && time > 0) { this.setState({ time: time - 1 }) } this.setState({ mytime: message }) return message }, 1000) ``` Promotion: Provides choices for pawn's promotion. ```js promotion(e) { const { chess } = this const from = this.pendingMove[0] const to = this.pendingMove[1] chess.move({ from, to, promotion: e }) this.setState({ fen: chess.fen(), lastMove: [from, to], selectVisible: false }) setTimeout(this.randomMove, 500) } ``` <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/promotion.gif" width="400px" /> History: Returns a list containing the moves of the current game. <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/history.png" width="400px" /> ## Features * Display last move and check <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/chess.png" width="400px" /> * Display move destinations, and premove destinations (hover effects possible) <img src="https://github.com/paiyou-network/react-chessground/blob/master/screenshot/premove.png" width="400px" /> It's available to see more features in [Chessground](https://github.com/ornicar/chessground) ## Documentation Options of `Chessground` are mapped to properties of `react-chessground` You can refer to documentation of `Chessground` for detailed configuration - [Config documented types](https://github.com/ornicar/chessground/tree/master/src/config.ts) - [Config default values](https://github.com/ornicar/chessground/tree/master/src/state.ts) An example of playing with random opponent is provided in [example](https://github.com/paiyou-network/react-chessground/tree/master/example)