1个不稳定版本

使用旧的Rust 2015

0.0.0 2018年2月9日

#56#棋引擎

MIT/Apache

46KB
787

Hexe
一个纯Rust棋引擎


(发音为 "Hekseh")

什么是Hexe?

Hexe是一个用Rust编写的开源棋引擎。它主要编写为一个库,并附带一个独立的可执行CLI前端。该项目分为三个包(crates)

  • [ bin ] hexe_bin

    Hexe的CLI前端,实际上是执行棋引擎。

  • [ lib ] hexe (文档)

    棋引擎本身。所有代码都是高度意见化和专门针对Hexe的使用案例。

  • [ lib ] hexe_core (文档)

    棋引擎的构建块。它可以很容易地被其他棋类程序和引擎使用,以实现更好的代码重用和效率。

为什么叫"Hexe"?

  1. "Hexe"是德语中的"女巫",表示在这个项目中使用了魔幻位图

    "魔幻位图"指的是一个非常快的完美哈希函数,用于索引到大型预计算的王后和车攻击表。

  2. 克拉克第三定律:

    "任何足够先进的技术都与魔法无法区分."

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

配置

CONFIGURATION.md.

特性

此项目的目标是具有以下功能

hexe

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

hexe_core

  • 位图和方格到棋子映射的棋盘表示
  • 查找表
    • 无需运行时初始化的魔幻位图
    • 通常对齐到公共缓存行大小(64字节)
  • 可选依赖Rust标准库或libc
  • SIMD并行性(见#4

兼容性

Hexe自动测试了最小Rust版本:1.25.0。

跨平台兼容性

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 许可证采用以下之一

由您选择。

依赖项

~1.5MB