<commit_before># Mau Mau

> Play is the highest form of research

> -- [Probably not Albert Einstein](http://quoteinvestigator.com/2014/08/21/play-research/)

This project aims to be a learning tool. Emphasis is put on [pythonic](https://gist.github.com/JeffPaine/6213790) ways to code and on using the power of the Open Source ecosystem. This is not a toy example, but the nasty details that usually screw with the nice and simple design and make the code grow tentacles and other cruft is not (yet) part of the code, so it can still be read like a nice little completely non-linear story (hopefully). It came into live in a non-linear fashion and should also be read that way.

I will try to keep it that way even if it has to grow some tentacles like fixing the broken unicode support in Windows terminals and other things the real world comes up with to complicate our beautiful simple projects.

## Features

### The game

* Complete [rules of Mau Mau](guide/rules.md)
* two different [strategies](implementation/explore.md#strategypy-how-to-play):
    * simple random strategy for a computer player
    * strategy that adds interactivity so a human can play against the computer

### Implementation and tools

* Installable as command line tool
* Functions to run multiple games and collect stats
* [automatic tests](https://github.com/obestwalter/mau-mau/blob/master/tests/) with py.test, tox and Travis CI
* Flexible [command line interface](https://github.com/obestwalter/mau-mau/blob/master/mau_mau/cli.py) (add new functions without adjusting code)
* Use of [magic methods](implementation/remarks.md#magic-methods-protocols) to create custom classes which behave like inbuilt data types
* Quality Assurance: flake8, QuantifiedCode, py.test, doctests, Travis CI
* Automatic generation and deployment of documentation with MkDocs
* Logging with stdlib [logging module](https://docs.python.org/3/library/logging.html)
* Developer task automation with tox (building and deploying docs, running tests)<commit_msg>corrections<commit_after># Mau Mau

> Play is the highest form of research

> -- [Probably not Albert Einstein](http://quoteinvestigator.com/2014/08/21/play-research/)

This project aims to be a learning tool. Emphasis is put on [pythonic](https://gist.github.com/JeffPaine/6213790) ways to code and on using the power of the Open Source ecosystem. 
    This is a real and complete application, not a toy example. The important difference to a "real" program is that the nasty details that usually screw with the nice and simple design and make the code grow tentacles and other cruft are not (yet) part of the code, so it can still be read like a nice little completely non-linear story. It came to life in a non-linear fashion and should also be read that way.

I will try to keep it that way even if it has to grow some tentacles like fixing the broken unicode support in Windows terminals and other things the real world comes up with to complicate our beautiful simple projects.

## Features

### The game

* Complete [rules of Mau Mau](guide/rules.md)
* Two different [strategies](implementation/explore.md#strategypy-how-to-play):
    * Simple random strategy for a computer player
    * Strategy that adds interactivity so a human can play against the computer

### Implementation and tools

* Installable as command line tool
* Functions to run multiple games and collect stats
* [Automatic tests](https://github.com/obestwalter/mau-mau/blob/master/tests/) with py.test, tox and Travis CI
* Flexible [command line interface](https://github.com/obestwalter/mau-mau/blob/master/mau_mau/cli.py) (add new functions without adjusting code)
* Use of [magic methods](implementation/remarks.md#magic-methods-protocols) to create custom classes which behave like inbuilt data types
* Quality Assurance: flake8, QuantifiedCode, py.test, doctests, Travis CI
* Automatic generation and deployment of documentation with MkDocs
* Logging with stdlib [logging module](https://docs.python.org/3/library/logging.html)
* Developer task automation with tox (building and deploying docs, running tests)
{'fraction_non_alphanumeric': 0.0732360097323601, 'fraction_numerical': 0.00827250608272506, 'mean_word_length': 4.63923182441701, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2301479', 'n_tokens_mistral': 1145, 'n_tokens_neox': 1074, 'n_words': 519}