<commit_before>Building blocks
***************

On a high level, pyherc codebase is divided as detailed below:

  * ai - Artificial Intelligence for monsters
  * data - Classes that represent playing world (dungeon, levels, items and so on)
  * debug - Debug webserver
  * generators - Classes used to create the world
  * gui - routines needed to interact with the player
  * rules - rules of the game, for example how creatures move and fight
  * test - test routines

Model
=====
:class:`pyherc.data.model.Model` is the main class representing
current state of the playing world. It holds reference to important things like:

  * Player character
  * Dungeon<commit_msg>tweaks to documentation<commit_after>Building blocks
***************

On a high level, pyherc codebase is divided as detailed below:

.. graphviz:: 

    digraph hierarchy {
        node[shape=box]
        edge[dir=forward, arrowtail=empty]
        pyherc
        ai
        data
        debug
        generators
        gui
        rules
        test

        pyherc->ai
        pyherc->data
        pyherc->debug
        pyherc->generators
        pyherc->gui
        pyherc->rules
        pyherc->test    
    }

Convenient links to each of main components

  * :py:mod:`pyherc.ai`
  * :py:mod:`pyherc.data`
  * :py:mod:`pyherc.debug`
  * :py:mod:`pyherc.generators`
  * :py:mod:`pyherc.gui`
  * :py:mod:`pyherc.rules`
  * :py:mod:`pyherc.test`
    
Model
=====
:class:`pyherc.data.model.Model` is the main class representing
current state of the playing world. It holds reference to important things like:

  * Player character
  * Dungeon
{'fraction_non_alphanumeric': 0.10396039603960396, 'fraction_numerical': 0.0, 'mean_word_length': 2.8317535545023698, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4724346', 'n_tokens_mistral': 499, 'n_tokens_neox': 482, 'n_words': 158}