7个版本

0.1.6 2021年4月8日
0.1.5 2021年4月8日
0.1.3 2021年3月27日

#878游戏开发

33 每月下载量
用于 poirebot-lichess

MIT 许可

91KB
2K SLoC

poirebot

用Rust编写的棋盘引擎和机器人。

Build status Crates.io Crates.io

与poirebot对弈

该机器人在Lichess.org上有时以账户 @poirebot 的形式出现。

直到机器人24/7在线,您可能希望本地运行它以进行测试。您应该创建一个新的Lichess.org账户,然后它将成为一个 BOT 账户。

  1. 为机器人创建一个新的 Lichess.org 账户
  2. 通过访问 https://lichess.org/account/oauth/token/create 生成一个新的个人访问令牌 (PAT)
  3. 给它一个描述,并选择所有选项 除了: 读取偏好,写入偏好,读取电子邮件地址
  4. 将令牌存储在 LICHESS_TOKEN 环境变量中(或者您也可以稍后使用 --token 标志)
  5. 现在您可以安装并运行该机器人

下载最新版本(无需Rust)https://github.com/aramperes/poirebot/releases/latest

或者使用Cargo(Rust 1.50+)构建和安装最新版本

rustup update stable
cargo install poirebot-lichess

或者构建最新的(master分支)(Rust 1.50+)

rustup update stable
git clone https://github.com/aramperes/poirebot.git
cd poirebot
cargo build --release
# (The poirebot-lichess binary will be in ./target/release)

运行

对于首次运行,需要 poirebot-lichess upgrade-account 命令(它将Lichess账户转换为 BOT 账户)。

poirebot-lichess upgrade-account
poirebot-lichess start

使用 poirebot-lichess start --help 获取运行机器人时可以使用标志的列表。

架构

poirebot在64位 位图 集合中跟踪棋盘状态。具体来说,棋盘状态存储在每个侧面(颜色)的位图集合中

  • 骑士
  • 未移动的车
  • 吃过路兵的目标方格

它还存储王是否移动过(布尔值)。

此外,在“提交”一方的突变后,它为生成移动目的生成“继承”位图

  • 棋子(兵、骑士、象、后和王的并集)
  • 攻击(任何该颜色棋子威胁的方格)

移动生成

poirebot 目前没有 正常工作的脑。当前目标是能够生成所有可能的走法,然后使用某种形式的 MiniMax 算法。

依赖项

poirebot 依赖于 Rust 稳定版 1.50+ 或 nightly,因为它使用了 <number>::clamp 函数。

  • anyhow:用于错误处理
  • tokio, tokio-stream:异步运行时
  • rayon:用于在 CPU 上进行昂贵棋盘操作的并行库
  • licorice:Lichess.org API 客户端 (分支)
  • clap:CLI 解析
  • rand:伪随机数生成器

灵感来源

这个机器人是为了与 Jeff 进行友好的比赛而制作的。作为公平规则,两个机器人都不使用棋库来管理棋盘状态和实现走法规则。

许可证

MIT,见 LICENSE。

依赖项

~5–12MB
~109K SLoC