美文网首页
Hearthbreaker中文文档

Hearthbreaker中文文档

作者: 我来守护大地 | 来源:发表于2018-01-14 09:46 被阅读0次

Hearthbreaker

炉石传说模拟器

Hearthbreaker 是一个开源的炉石传说模拟器,可以用于对炉石传说的机器学习和数据挖掘。Hearthbreaker 实现了炉石传说的每一张卡牌,精确模仿了每一个请求,甚至包括一些特殊情况与bug。模拟进行牌局可以用于确定卡牌间的相互作用与配合情况。
Hearthbreaker 并非被设计用于游戏目的,它应被用于分析。

使用方法

Hearthbreaker 兼容 Python 3.2+ 和 PyPy3 2.3+,任何支持这些语言的操作系统都可以运行 Hearthbreaker。

控制台程序
控制台程序
这是一个基础控制台,可以用来和 bot 对战。有两种 bot 可供选择:决策完全随机的随机 bot(random bot)和会进行随从交换的交换 bot(trading bot)

你可以使用python text_runner.py deck1.hsdeck deck2.hsdeck打开控制台。命令中需要两个 cockatrice 格式的卡组文件,即卡牌数量+空格+卡牌英文名,示例如下:

2 Goldshire Footman
2 Murloc Raider
2 Bloodfen Raptor
2 Frostwolf Grunt
2 River Crocolisk
2 Ironfur Grizzly
2 Magma Rager
2 Silverback Patriarch
2 Chillwind Yeti
2 Oasis Snapjaw
2 Sen'jin Shieldmasta
2 Booty Bay Bodyguard
2 Fen Creeper
2 Boulderfist Ogre
2 War Golem

所选择的英雄将通过卡组自动识别,默认为法师。

该控制台程序依赖 ncurses ,ncurses 一般包含在 *nix 和 mac 系统的 python 中,如果你使用的是Windows,请移步http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses下载。

注意:Curses 在PyPy中不可用。

单元测试 Unit Test

该测试位于 tests 包。

所有的测试都可以通过以下指令运行: python -m unittest discover -s tests -p *_tests.py

对于 Python 3.2 和 PyPy3,该测试依赖 mock package

进展

已经实现所有可收集卡牌。模拟器具有完整的引擎,可以被用来模拟游戏。模拟的游戏状态可以被复制或写入 JSON 文件,并具有回放功能。此外,随从和武器也可以被 python 或通过 JSON 文件表达。

待完成的工作详见 wiki

结构

可以在 hearthbreaker.game_objects 查看游戏逻辑。游戏功能使用了基于标签(tag)的系统,更多的细节详见 wiki

游戏主要由手牌英雄奥秘随从构成。系统基于回调(callback)因此当 agents (可以由电脑或玩家操控)作出决定时,游戏会向 agents 请求决定,而不是由 agents 决定游戏如何运行。

每一张卡牌都是一个类,可以在 hearthbreaker/cards 目录下查找,按照(法术/随从/奥秘/武器)分类。

本项目定义了数个格式,详见 wiki

贡献

你可以通过 fork 库,修改程序和提交 pull 请求做出贡献。

所有的实现新卡牌的 pull 请求必须包括一个对该卡牌的单元测试。

In the case where the card has no side effects aside from playing the minion, tests should include another card's effects on it.

所有的 pull 请求将会通过 travis-ci.org 自动认证,并通过 coveralls.io 生成覆盖报告。

新的想法和特性都可以在 wiki 查看。你可以随意取用。

你可以通过 freenode.net 的#hearthsim找到本项目和其他炉石传说模拟项目的开发者。

查看 contributing page 了解更多贡献细节,或加入 Developer Mailing List

相关项目

炉石传说AI相关项目合集 hs-ai.com

HearthSim Hiroaki Oyaizu 创造了 HearthSim ,一个Java炉石传说模拟器,更专注于效率与AI。目前实现卡牌较少,但有更加复杂的AI。

Focus Raffy 致力于为炉石传说卡牌开发 JSON 格式的 Domain Specific Language (DSL)。 该项目已经实现所有卡牌,但是引擎(Focus)仍在开发中。 任何人都可以通过简单的 JSON 定义新卡牌。

Fireplace Jerome Leclanche 试图对炉石传说卡牌的 xml 格式文件进行逆向工程,并基于此开发一个引擎。该项目计划实现一个完整的模拟器,包括所有的可收集卡牌和副本卡牌。详见Frieplace GitHub page

Soot Soot是一个略过时的 Clojure 卡牌实现。目前还不知道这样的实现效果如何。该项目对卡牌的功能实现十分有趣。

Hearthstone JSON

Hearthstone JSON 是一个从exe文件中提取的,包含炉石传说所有卡牌的 JSON 文件。Hearthbreaker 使用这些数据验证本项目的所有卡牌被正确实现。

炉石传说暴雪 均为 暴雪娱乐 的商标

相关文章

网友评论

      本文标题:Hearthbreaker中文文档

      本文链接:https://www.haomeiwen.com/subject/biqkoxtx.html