象棋引擎测试-一个简单的界面,发挥象棋引擎对彼此,包括锦标赛。

chester的Python项目详细描述


PyPI versionProject Status: Active – The project has reached a stable, usable state and is being actively developed.Build StatusLanguage grade: PythonTotal alertsLines of Codelicense

切斯特-国际象棋引擎测试仪

chester是一个python包,旨在为运行国际象棋匹配提供一个简单的接口 在计算机象棋程序之间(称为引擎)。很容易做到 参加任何长度的1v1比赛,包括在 发动机组。

功能

  • 在国际象棋引擎之间轻松设置锦标赛
  • 任意时间控件
  • 支持使用Polyglot开场白
  • 支持游戏仲裁,绘制长游戏和辞职丢失的位置(todo

示例用法

下面的示例演示如何在 StockfishGoldfish。所有玩家必须与UCI兼容 象棋引擎。

fromchester.timecontrolimportTimeControlfromchester.tournamentimportplay_tournament# Each string is the name/path to an executable UCI engine.players=["stockfish","goldfish"]# Specify time and increment, both in seconds.time_control=TimeControl(initial_time=2,increment=0)# Play each math-up twice.n_games=2forpgninplay_tournament(players,time_control,n_games=n_games,opening_book="openingbooks/gm2001.bin",# Optionally use an opening book.repeat=True,# Each opening played twice,):# Each game is returned as they finish, so no need to wait for# every game to finish before you can start processing.# In this case just print out the game PGN.print(pgn,"\n")

它可以输出如下内容:

[Event "?"]
[Site "?"]
[Date "2019-02-07"]
[Round "1"]
[White "Stockfish 10 64 POPCNT"]
[Black "Goldfish v1.8.1"]
[Result "1-0"]
[FEN "rn3rk1/pp2ppbp/2pp1np1/q7/2PPP3/2N2BPP/PP3P2/R1BQ1RK1 b - - 0 10"]
[SetUp "1"]

10... Nbd7 11. Qe2 g5 12. Rd1 Kh8 13. Bd2 Rg8 14. b4 Qxb4 15. Nd5 Qb2 16. Nxe7 Rge8 17. Nf5 Re6 18. Qd3 h6 19. Rdb1 Ne5 20. dxe5 Qxe5 21. Bc3 Qc5 22. Rxb7 Rf8 23. Rab1 a6 24. Bg4 Re5 25. Bb4 Rxf5 26. Bxf5 Qe5 27. Bxd6 Rd8 28. Bxe5 Rxd3 29. Rxf7 Kg8 30. Bg6 Rd8 31. Bxf6 Bxf6 32. Rxf6 Rd2 33. Rxc6 Rxa2 34. Rb8+ Kg7 35. Rb7+ Kg8 36. Rc8# 1-0

[Event "?"]
[Site "?"]
[Date "2019-02-07"]
[Round "1"]
[White "Goldfish v1.8.1"]
[Black "Stockfish 10 64 POPCNT"]
[Result "0-1"]
[FEN "rn3rk1/pp2ppbp/2pp1np1/q7/2PPP3/2N2BPP/PP3P2/R1BQ1RK1 b - - 0 10"]
[SetUp "1"]

10... Qc7 11. Bf4 e5 12. dxe5 dxe5 13. Be3 Rd8 14. Qa4 Nbd7 15. c5 Nf8 16. Be2 Ne6 17. Rfd1 Nd4 18. Bxd4 exd4 19. Rxd4 Nd7 20. Rc4 Ne5 21. Rb4 a5 22. Rb3 Rd4 23. Nb5 cxb5 24. Qxb5 Rxe4 25. f3 Nd3 26. Bxd3 Qxg3+ 27. Kh1 Qxh3+ 28. Kg1 Bd4# 0-1

[Event "?"]
[Site "?"]
[Date "2019-02-07"]
[Round "2"]
[White "Stockfish 10 64 POPCNT"]
[Black "Goldfish v1.8.1"]
[Result "1-0"]
[FEN "r1bq1rk1/2pnbppp/p2p1n2/1p2p3/3PP3/1BP2N1P/PP3PP1/RNBQR1K1 w - - 1 11"]
[SetUp "1"]

11. c4 Bb7 12. Nc3 b4 13. Nd5 Nxd5 14. exd5 Bf6 15. Ba4 exd4 16. Nxd4 Nb6 17. Bc2 g6 18. b3 Qd7 19. a3 bxa3 20. Rxa3 Rfe8 21. Be3 a5 22. Bd3 h6 23. Nf3 Bc3 24. Re2 Kh7 25. Nd4 f5 26. Ne6 c5 27. Qc2 Bh8 28. Bxf5 gxf5 29. Qxf5+ Kg8 30. Qg4+ Bg7 31. Bxh6 Re7 32. Bxg7 Rxg7 33. Qxg7+ Qxg7 34. Nxg7 Bxd5 35. Nf5 Bb7 36. Nxd6 Bc6 37. Re7 Rd8 38. Re6 Bd7 39. Rf6 Kg7 40. Ne4 Re8 41. Rxb6 Rxe4 42. Rxa5 Re5 43. Ra7 Re7 44. Rbb7 Re1+ 45. Kh2 Kh8 46. Rxd7 Re8 47. Rdc7 Kg8 48. Rxc5 Rf8 49. Kg1 Rf7 50. Rxf7 Kxf7 51. Kh2 Kf8 52. Rd5 Kg8 53. b4 Kg7 54. b5 Kf7 55. b6 Ke6 56. b7 Kf6 57. b8=Q Kf7 58. Rd6 Kg7 59. Qc7+ Kh8 60. Rd8# 1-0

[Event "?"]
[Site "?"]
[Date "2019-02-07"]
[Round "2"]
[White "Goldfish v1.8.1"]
[Black "Stockfish 10 64 POPCNT"]
[Result "0-1"]
[FEN "r1bq1rk1/2pnbppp/p2p1n2/1p2p3/3PP3/1BP2N1P/PP3PP1/RNBQR1K1 w - - 1 11"]
[SetUp "1"]

11. Na3 Bb7 12. Qd3 c5 13. dxe5 c4 14. Nxc4 bxc4 15. Qxc4 dxe5 16. Qd3 Qc7 17. Bg5 Nc5 18. Qc4 a5 19. Bc2 Ba6 20. Bxf6 Bxc4 21. Bxe5 Qb7 22. b3 Bd3 23. Bxd3 Nxd3 24. Re2 Nxe5 25. Nxe5 a4 26. Rb1 axb3 27. Rxb3 Qc7 28. Nf3 Qc4 29. Nd4 Bc5 30. Rd2 Bxd4 31. Rxd4 Qe2 32. a4 Qe1+ 33. Kh2 Qxf2 34. Rc4 Qf4+ 35. Kg1 Rac8 36. Rbb4 Qc1+ 37. Kf2 Rxc4 38. Rxc4 Qd2+ 39. Kg1 Qd3 40. Rd4 Qxc3 41. Rd1 Qe3+ 42. Kh1 Qxe4 43. a5 Qe5 44. a6 Qa5 45. a7 Qxa7 46. Rd5 Qe3 47. Kh2 Qf4+ 48. Kh1 Qf1+ 49. Kh2 Rc8 50. Rd4 Qe1 51. Rd5 Qe2 52. Ra5 Qe4 53. g4 Qf4+ 54. Kh1 Rc1+ 55. Kg2 Rc2+ 56. Kg1 Qc1# 0-1

结果是4游戏开始了。这是因为比赛要开始了 n_games * len(list(permutations(players, 2)))!游戏,即每个玩家玩 所有其他玩家都是黑白的,所有这些都是重复的n_games 时代。

安装

chester可以在任何平台上使用pip轻松安装。注意,唯一官方支持的python版本是3.7或更高版本。

> pip install chester

备选方案

最为人所知的chester替代方案是 cutechess。这是一个功能更丰富的项目,目标不仅仅是chester。 这对那些需要它的人来说是一种好处,但与chester相比,这也是它的缺点。由于它的复杂性,CuTeXT更不易携带,并且在某些系统上设置是相当繁琐的。

chester另一方面,它的目标是更加便携,并且只依赖于兼容的 python的版本和使用pip安装时自动安装的包python-chess

然而,它并不打算成为 feature complete并支持所有可以想象的功能。其目的是提供 一个简单的方法做一个简单的任务-测试国际象棋引擎对彼此。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓中通过TCP发送时java文件损坏   Java测试预期=异常失败,断言错误   java ssh4 LazyInitializationException   java是否可以在集合中添加重复项?   java是一个免费的开源数据库管理工具   java是否可以在导出的html中嵌入图像   编译器构造解释一些东西,并用Java运行生成的字节码?   java KeyPairGenerator未生成随机密钥   java使用正则表达式生成字符串而不是匹配字符串   java中的多线程线程间通信   具有复合密钥的java Hibernate合并问题   java不能在MainActivity类之外使用SharedReferences变量   正在获取切割/零件异常消息。使用java Spring ControllerAdvice   java tomcat漏洞讨论   javascript在Java中实现“system”命令   java如何在JUnit5*中加载*Spring测试上下文之前获取回调?   java bluej关于缺少返回语句   JavaSpringBoot@ModelAttribute包含使用字符串键的其他模型   从可选中抛出异常。ifPresent()Java 8