Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/moviestoreguy/deckcurator
This project looks at evaluating Magic The Gathering™ decks to see how well they preform against different metric functions.
https://github.com/moviestoreguy/deckcurator
Last synced: 3 days ago
JSON representation
This project looks at evaluating Magic The Gathering™ decks to see how well they preform against different metric functions.
- Host: GitHub
- URL: https://github.com/moviestoreguy/deckcurator
- Owner: MovieStoreGuy
- Created: 2017-06-25T12:51:26.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-08-21T19:58:14.000Z (about 7 years ago)
- Last Synced: 2024-10-11T18:31:23.592Z (27 days ago)
- Language: C++
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Deck Curator
This project looks at evaluating Magic The Gathering™ decks to see how well
they preform against different metric functions.## Build Status
[![Build Status](https://travis-ci.org/RenegadeTech/DeckCurator.svg?branch=master)](https://travis-ci.org/RenegadeTech/DeckCurator)## How it works
Once you have constructed a deck, you can specify what metrics to perform against your deck. The library keeps object as constant when it is being evaluated so that operations can happen in parallel without side affects.### Example
*Adding functions to the Evaluator using c++ 11 lambda*
```c++
// ...
std::unique_ptr eval(new DeckCurator::Evaluator());
eval->setDeck(&deck);
eval->addEvaluationFunction([](const DeckCurator::Deck * deck)->double{
// Custom Deck Evaluator function
});
std::cout << "The Deck Metric is: " << eval->evaluate() << std::endl;
```
Once the function has been added to the evaluator object, it is then in its own async block so that the process of one function does not block another.*Adding a function in Python*
```Python
Eval = DeckCurator.Evaluator()
Deck = DeckCurator.Deck()
# Build Deck ...
Eval.addEvaluationFunction(lambda x: ''' Evaluator function here ''')
print "The Deck Metric is: {}".format(Eval.evaluate())
```## Project Goals
- [ ] Be able to work as microservice
- [ ] Have a accessible docker container
- [ ] Templated using Jinja
- [x] Python binding support
- [x] Interface with Python
- [x] Works as C++ would
- [ ] Support multiple file types for reading / writing
- [ ] JSON
- [ ] Plain text
- [ ] Yaml