/RosettaStone

Hearthstone simulator using C++ with some reinforcement learning

Primary LanguageC++GNU Affero General Public License v3.0AGPL-3.0

RosettaStone

License Build Status Build status Build Status Discord

codecov Codacy Badge Total alerts Language grade: C/C++ CodeFactor

RosettaStone is Hearthstone simulator using C++ with some reinforcement learning. The code is built on C++17 and can be compiled with commonly available compilers such as g++, clang++, or Microsoft Visual Studio. RosettaStone currently supports macOS (10.14 or later), Ubuntu (18.04 or later), Windows (Visual Studio 2017 or later), and Windows Subsystem for Linux (WSL). Other untested platforms that support C++17 also should be able to build RosettaStone.

Related Repositories

Key Features

  • Support C++17 based Hearthstone library
  • Provide console and GUI simulator

To-do Features

  • Upgrade "The Innkeeper" to smart
  • Recommend top-tier decks
  • Deck tracker
  • Web simulator
  • Python API

Roadmap

2019

  • Implement all original + some expansion cards
  • Fully support console and GUI program
  • Provide RL environment using PyTorch C++ API
  • Support API for another language such as Python
  • Integrate with RealStone, "Real" Hearthstone hardware using Arduino

2018

  • Implement basic system (game and task)
  • Implement basic console program
  • Implement some original cards
  • Support cross-platform build (Windows/Linux/MacOS)
  • Provide API documentation using doxygen

Cards Implementation

Basic & Classic

  • 100% Basic (133 of 133 Cards)
  • 9% Classic (23 of 237 Cards)
  • 9% Hall of Fame (2 of 22 Cards)

Adventures

  • 0% One Night in Karazhan (0 of 45 Cards)
  • 0% The League of Explorers (0 of 45 Cards)
  • 0% Blackrock Mountain (0 of 31 Cards)
  • 0% Curse of Naxxramas (0 of 30 Cards)

Expansions

  • 0% Rise of Shadows (0 of 135 cards)
  • 0% Rastakhan's Rumble (0 of 135 Cards)
  • 0% The Boomsday Project (0 of 135 Cards)
  • 0% The Witchwood (0 of 135 Cards)
  • 0% Kobolds & Catacombs (0 of 135 Cards)
  • 0% Knights of the Frozen Throne (0 of 135 Cards)
  • 0% Journey to Un'Goro (0 of 135 Cards)
  • 0% Mean Streets of Gadgetzan (0 of 132 Cards)
  • 0% Whispers of the Old Gods (0 of 134 Cards)
  • 0% The Grand Tournament (0 of 132 Cards)
  • 0% Goblins vs Gnomes (0 of 123 Cards)

Implementation List

Quick Start

You will need CMake to build the code. If you're using Windows, you need Visual Studio 2017 in addition to CMake.

First, clone the code:

git clone https://github.com/utilForever/RosettaStone.git --recursive
cd RosettaStone

C++ API

For macOS or Linux or Windows Subsystem for Linux (WSL):

mkdir build
cd build
cmake ..
make

For Windows:

mkdir build
cd build
cmake .. -G"Visual Studio 15 2017 Win64"
MSBuild RosettaStone.sln /p:Configuration=Release

Now run console simulator:

bin/RosettaConsole

To run GUI simulator, please check out RosettaStone GUI.

More Instructions of Building the Code

To learn how to build, test, and install the SDK, please check out Install.md.

Documentation

All the documentations for the framework can be found from the project website incluing the API reference.

Presentations

Sprints

Articles

How To Contribute

Contributions are always welcome, either reporting issues/bugs or forking the repository and then issuing pull requests when you have completed some additional coding that you feel will be beneficial to the main project. If you are interested in contributing in a more dedicated capacity, then please check out Contributing.md.

Contact

You can contact me via e-mail (utilForever at gmail.com). I am always happy to answer questions or help with any issues you might have, and please be sure to share any additional work or your creations with me, I love seeing what other people are making.

Sponsors

CppDepend

License

The class is licensed under the Affero GPLv3 License:

RosettaStone is based on part of Sabberstone's code

Copyright (c) 2017-2019 SabberStone Team, darkfriend77 & rnilva

RosettaStone, Hearthstone simulator using C++ with some reinforcement learning

Copyright (C) 2017-2019 RosettaStone Team

RealStone, "Real" Hearthstone hardware using Arduino

Copyright (C) 2018-2019 RealStone Team

  • Taehyeon Song
  • Doun Lee
  • Yeonsu Jung
  • Suha Cho

RosettaStone is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License. RosettaStone is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

Hearthstone is an interactive game of Blizzard Entertainment, Inc and all rights reserved. Hearthstone is a registered trademark of Blizzard Entertainment, Inc. in the U.S. and/or other countries. This project is not affiliated with Blizzard Entertainment.