UNPKG

@noe_rls/cm-chessboard

Version:

A JavaScript chessboard which is lightweight, ES6 module based, responsive, SVG rendered and without dependencies.

71 lines (69 loc) 2.88 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>cm-chessboard</title> <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0"/> <link rel="stylesheet" href="./examples/styles/examples.css"/> <link rel="stylesheet" href="./assets/styles/cm-chessboard.css"/> </head> <body> <h1><a href="./">cm-chessboard</a></h1> <h2>Example: Set different positions, with animation</h2> <p>Animations are queued automatically.</p> <div class="board" id="board"></div> <br/> <button onclick="setPosition('empty')">Empty Position</button> <button onclick="setPosition('start')">Start Position</button> <button onclick="setPosition('rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR')">Position 1</button> <button onclick="setPosition('rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R')">Position 2</button> <button onclick="setPosition('rn2k1r1/ppp1pp1p/3p2p1/5bn1/P7/2N2B2/1PPPPP2/2BNK1RR')">Position 3</button> <button onclick="switchOrientation()">Switch Orientation</button> <pre>&lt;button onclick="window.board.setPosition('rn2k1r1/ppp1pp1p/3p2p1/5bn1/P7/2N2B2/1PPPPP2/2BNK1RR')"&gt;Position 3&lt;/button&gt;</pre> <br/> Move piece from: <input id="moveFrom" type="text" size="2" value="e2"/> to: <input id="moveTo" type="text" size="2" value="e4"/> <button onclick="movePiece()">Do move</button> <pre>board.movePiece(squareFrom, squareTo)</pre> <br/> <button onclick="knightMove()">Knight dance</button> <pre> board.setPiece("e4", PIECE.wn) await board.movePiece("e4", "c3") await board.movePiece("c3", "d5") await board.movePiece("d5", "f4") </pre> <script type="module"> import {Chessboard, PIECE} from "./src/cm-chessboard/Chessboard.js" const board = new Chessboard(document.getElementById("board"), { position: "start", sprite: {url: "./assets/images/chessboard-sprite-staunty.svg"}, animationDuration: 500 }) let i = 0 window.setPosition = (position) => { i++ board.setPosition(position).then(() => { console.log("setPosition resolved", position, i) }) } window.switchOrientation = () => { board.setOrientation(board.getOrientation() === 'w' ? 'b' : 'w') } window.movePiece = () => { const squareFrom = document.getElementById("moveFrom").value const squareTo = document.getElementById("moveTo").value console.log("movePiece", squareFrom, squareTo) board.movePiece(squareFrom, squareTo) } window.knightMove = async () => { await board.setPosition("empty") board.setPiece("e4", PIECE.wn) await board.movePiece("e4", "c3") await board.movePiece("c3", "d5") await board.movePiece("d5", "f4") } </script> </body> </html>