/hived

A tiny game engine for the Hive boardgame

Primary LanguageGoMIT LicenseMIT

HiveD - The Tiny Hive Board Game Engine
=======================================

Built as a tiny game engine with the purpose of providing a functional rules engine for hive.
The goal is to main a small portable library that can be imported into other projects such as
servers and clients.

Build Environment Prerequisites
-------------------------------

We recommend that you use the docker-container target if you're unsure of how to install or
maintain these tools.

- Build tools
  - python-pip
  - python-sphinx
  - hub
  - zip
  - github.com/readthedocs/godocjson
  - sphinx-autoapi
  - sphinxcontrib-golangdomain

Execute Tests and Build Documentation
++++++++++++++++++++++++++++++++++++++

The following command will execute all tests in the project, generate documentation, and start an
nginx server on localhost:8080 that serves up that documentation.

    make docs-server

Execute Tests and Build Documentation
++++++++++++++++++++++++++++++++++++++

Roadmap
-------

* [ ] Engine
    * [ ] Rule Complete
        * [X] Rule of Sliding
        * [-] Rule of the Single Hive
        * [X] Placement
        * [-] Movement
            * [-] Queen
            * [-] Ant
            * [-] Grasshopper
            * [-] Spider
            * [-] Beetle
            * [-] Ladybug
            * [-] Pillbug
            * [-] Mosquito
            * [ ] Rule of Sliding
            * [ ] Path to Void
            * [ ] No path discovered
        * [X] Victory
    * [-] Feature Flags
        * [X] Tournament Rules
        * [-] Pill Bug
        * [-] Ladybug
        * [-] Mosquito
    * [X] Turn Management
        * [X] Track Turn History
        * [X] Track paralyzed pieces
* [ ] Project
    * [ ] Hosting
        * [X] Git Repo
        * [ ] CICD
        * [-] Documentation
    * [ ] Descriptor Files
        * [-] README
        * [X] VERSION
        * [X] COPYRIGHT
    * [ ] Pipeline
        * [ ] Pre-commit Hooks
        * [X] Tests
        * [ ] Formatting
        * [X] Static Analysis
        * [ ] Build
            * [X] Binaries
            * [X] Generate Documentation
        * [ ] Release

F.A.Q.
------

    1. How do I access the docker container after performing a build?
        * docker run -it theshadow/hived:latest /bin/bash
    2. How do I start the localhost docks server
        * docker run -p 8080:80 theshadow/hived:latest