#chess-engine #chess #engine #magic #ai #chess-board

no-std hexe_core

hexe 棋引擎仓库的核心组件

6 个版本

使用旧 Rust 2015

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

#2107 in 游戏开发


2 个仓库中使用 (通过 hexe)

MIT/Apache 协议

1.5MB
5K SLoC

Hexe
一个纯 Rust 棋引擎


(发音为 "Hekseh")

Travis Status AppVeyor Status LoC

什么是 Hexe?

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

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

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

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

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

    • 支持 no_std 构建

    • 可供其他棋程序使用,以便于代码复用

为什么叫 "Hexe"?

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

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

  3. 如果它和鸭子一样重... 那它就是木头做的。因此...

特性

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

hexe

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

hexe_core

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

跨平台兼容性

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

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

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

跨语言兼容性

目前有以下语言的 Hexe 包装器可用

许可证

Hexe 的许可证采用以下之一

由您选择。

依赖项

~2.5MB
~48K SLoC