这个项目能做什么

此仓库是一个Go(Golang)国际象棋库,以一组包的形式提供常见的国际象棋工具。它是notnil/chess的一个分支,在/v2命名空间下维护,重点在于减少内存分配、提升性能,并扩大测试覆盖范围。 核心功能包括使用位棋盘进行走法生成、回合管理、将杀和和棋检测,以及序列化/反序列化。支持的格式包括PGN(带有标签对、注释、命令注解,以及用于大型数据库的流式Scanner,可选展开变体)和FEN。支持多种记谱法:代数记谱、长代数记谱和UCI。 游戏结果处理涵盖将杀、逼和、认输、和棋提议、三次和五次重复、五十步和七十五步规则,以及子力不足。走法API提供经过验证的和不安全的高性能变体(UnsafeMove、UnsafePushNotationMove),README指出跳过验证时分别约有1.5倍和1.1倍的加速。 其他包包括一个SVG国际象棋棋盘图像生成器、一个开局库浏览器,以及一个通用国际象棋接口(UCI)客户端,可以驱动外部引擎如Stockfish,如自对弈示例所示。Draw()方法使用Unicode国际象棋符号渲染局面。 安装通过go get github.com/corentings/chess/v2进行。README记录了基准测试,并说明该库为潜在的国际象棋机器人使用进行了性能调优。它主要为了作者自己的项目维护,并与社区共享;欢迎贡献、问题和拉取请求。