6 个版本

使用旧的 Rust 2015

0.0.5 2018年4月3日
0.0.4 2018年3月29日
0.0.1 2018年2月11日
0.0.0 2017年10月16日

#16#chess-board

每月下载量23次
用于 hexe_bin

MIT/Apache 协议

1.5MB
5.5K SLoC

Hexe
纯 Rust 国际象棋引擎


(发音为 "Hekseh")

Travis Status AppVeyor Status LoC

什么是 Hexe?

Hexe 是用 Rust 编写的开源国际象棋引擎。它主要作为一个库编写,具有直接利用该库的可执行文件。此项目分为两个包(crates)

  • [ lib + bin ] hexe: 国际象棋引擎本身

    • 针对 Hexe 的使用场景进行优化

    • 包含运行可执行文件所需的所有代码

  • [ lib ] hexe_core: 国际象棋引擎的构建块

    • 支持 no_std 构建

    • 可以被其他国际象棋程序用于代码重用

为什么叫 "Hexe"?

  1. "Hexe" 是德语中的女巫。它表示在此项目中使用了魔法位图。

  2. 它指的是 克拉克第三定律:"任何足够先进的技术都与魔法无法区分。"

  3. 如果它与鸭子的重量相同... 它是由木头制成的。因此...

特性

此项目的目标是具有以下特性

hexe

  • UCI 兼容性
  • 渴望窗口
  • 迭代加深
  • 杀手走法
  • 带 Alpha-Beta 剪枝的 Minimax
  • 空走启发式算法
  • 置换表
  • 工作窃取多线程搜索

hexe_core

  • 位图和方格到棋子映射的国际象棋棋盘表示
  • 查找表和无初始化运行的魔法位图

跨平台兼容性

Hexe 编写为可用于 Rust 编译到的主要平台。 hexehexe_core 都会自动针对所有 一级平台 进行测试。截至本文写作时,它们是

平台 版本
macOS 10.7+, 狮子+ 32/64
MinGw/MSVC Windows 7+ 32/64
Linux 2.6.18+ 32/64

hexe_core 设计为不需要 Rust 标准库。正因为如此,它与稳定 Rust 编译到的所有平台兼容。

跨语言兼容性

目前以下语言提供了 Hexe 包装器

许可证

Hexe 根据 Apache 许可证(版本 2.0)或 MIT 许可证授权,由您选择。

任选其一。

依赖关系

~2.5MB
~51K SLoC