github链接:chess.js
1、安装引入
# NPM 引入
npm install chess.js
# Yarn 引入
yarn add chess.js
# 下载后直接在 html 引入
<script src="./chess.js"></script>
2、使用
# npm 或 yarn 方式引入使用方法
const { Chess } = require('./chess.js')
const chess = new Chess()
# html引入使用方法
const chess = new Chess()
3、部分API
介绍一些常用的api,想要了解更多api的同学可以去git上看哦
- Constructor: Chess([ fen ])
Chess()构造函数接受一个可选参数,该参数以Forsyth-Edwards符号指定棋盘配置
// 当没有参数调用时,默认为起始位置
const chess = new Chess()
// 传入字符串的FEN参数,加载特定棋局
const chess = new Chess(
'r1k4r/p2nb1p1/2b4p/1p1n1p2/2PP4/3Q1NB1/1P3PPP/R5K1 b - c3 0 19'
)
- .clear()
清空棋盘
- .fen()
返回当前棋盘的FEN字符串
- .history([ options ])
返回包含当前游戏的步骤列表。Options是一个可选参数,可能包含一个'verbose'标志。表示显示移动字段的详细描述
- .load(fen)
加载fen格式的棋谱,如果加载成功,返回true,加载失败返回false
- .load_pgn(pgn, [ options ])
加载存储在便携式游戏表示法中的行棋步骤。pgn应该是一个字符串。Options是一个可选对象,可以包含字符串类型的newline_char
和布尔型类型的sloppy
。
newline_char
是有效RegExp片段的字符串表示,用于处理PGN。它默认为\r?\n。特殊字符不应该预先转义,但是任何字面特殊字符都应该像正常的RegExp一样转义。记住,JavaScript字符串中的反斜杠本身必须转义(参见下面的sloppy_pgn示例)。避免使用可能在PGN的其他地方出现的newline_char,例如。或者x,因为这会导致意想不到的行为。
sloppy
是一个布尔值,它允许chess.js以非标准符号解析移动
- .move(move, [ options ])
尝试在棋盘上移动棋子,如果该移动是合法的,则返回一个移动对象,否则为空。
.move
函数有两种调用方式,一种是通过标准代数表示法(SAN)传递字符串:
const chess = new Chess()
chess.move('e4')
// -> { color: 'w', from: 'e2', to: 'e4', flags: 'b', piece: 'p', san: 'e4' }
chess.move('nf6') // SAN is case sensitive!!
// -> null
chess.move('Nf6')
// -> { color: 'b', from: 'g8', to: 'f6', flags: 'n', piece: 'n', san: 'Nf6' }
或者通过传递.move()一个move对象(只有'to', 'from',和必要的'promotion'字段是需要的)
const chess = new Chess()
chess.move({ from: 'g2', to: 'g3' })
// -> { color: 'w', from: 'g2', to: 'g3', flags: 'n', piece: 'p', san: 'g3' }
- .pgn()
返回当前棋局的PGN格式。Options是一个可选参数,它可能包括最大宽度和/或换行字符设置。
- .reset()
将棋盘恢复到初始启动位置
- .undo()
回退最后半步,如果成功返回一个move对象,否则返回null