3 个稳定版本
2.0.0 | 2020年7月11日 |
---|---|
1.0.1 | 2020年6月25日 |
1.0.0 | 2020年6月16日 |
#1348 in 游戏开发
1MB
1.5K SLoC
shogai
一个用于将棋引擎的 Rust 接口(带有简单的将棋引擎功能)
应作为库使用,但下面的示例(main.rs 中的代码)是可玩的,如下所示(我对抗一个愚蠢的机器人)
这是什么
一个辅助程序,可以创建、管理、显示(在终端上)并修改一个将盘(将棋棋盘)
这意味着:你可以创建一个棋盘,请求可能的(合法)移动,进行这样的移动,在 CLI 上打印棋盘,获取诸如价值(好位置?)等东西。
适用于谁
老实说,我不太清楚。你想实现一个将棋 引擎 吗?也许这里是正确的位置...我的意思是,你可以使用 shogai 在几行代码中实现一个将棋引擎(参见 ai::greedy),但只要性能是一个问题,我就无法提供任何保证。它仍然相当优化,但代码清晰度比纯粹的速度更重要。
免责声明:我没有与其他将棋引擎比较性能的方法,因为实现一个将棋引擎是一个完全不同的故事,有大量的 if/else 分支等等...
如果你对在 Rust 中构建自己的“高性能”将棋引擎感兴趣,可以使用这个助手来加速开发。如果性能不符合你的预期,你可能需要自己重写一些部分。使用 shogai 的优势?
- CLI 接口?已完成
- 移动检查(以防你不完全确定自己的移动)?已完成
- 简单的棋子、位置、移动结构,带有解析?已完成
没有管理抽签条件。
安装
将
shogai="*"
添加到你的 Cargo.toml
如何使其工作
(或者对你来说是什么意思)根据你的目标(我的意思是:性能目标),你的使用可以遵循文档中显示的示例,或者得到 相当 优化,但这样会更复杂。
你的基本将棋程序的结构应该是这样的
- 创建一个棋盘
- 循环
-
- 读取、获取、生成 ... 一个移动(作为 &str)
-
- 执行这个移动
-
- 检查游戏是否结束
贡献
PR 可以接受,并且欢迎贡献者!