Skip to content

SuperDoxin/py-exhaust-ma

Repository files navigation

Py-Exhaust-MA

Tests GitHub release (latest by date) GitHub issues GitHub Awesome?

Exhaust-MA is a highly optimized Redcode simulator. Py-Exhaust-MA is the python bindings for Exhaust-MA.

Installation

Use pip to install Py-Exhaust-MA.

pip install exhaust-ma

Usage

from exhaust_ma import Warrior, Core, CoreSettings

jaguar = "jaguar.rc"
imp = "imp.rc"

cs = CoreSettings()
w1 = Warrior.from_filename(cs, jaguar)
w2 = Warrior.from_filename(cs, imp)

c = Core(cs)
c.load_warriors([w1, w2])

print(c.run())

Exhaust-MA includes a set of warriors which you can access using setuptools pkg_resources:

from pkg_resources import resource_filename

jaguar = resource_filename("exhaust_ma", "exhaust-ma/jaguar.rc")

A full list of included files can be found In the exhaust-MA repository.

Contributing

To get going:

    # Clone the git repository
    git clone git@github.com:SuperDoxin/py-exhaust-ma.git

    cd py-exhaust-ma

    # Update the submodules. This is needed for building the exhaust-ma cffi
    # library
    git submodule init
    git submodule update

    # Create a virtual environment to prevent polluting your system python
    # installation
    python -m venv venv
    source venv/bin/activate

    # Install requirements
    pip install -r requirements.txt

    # Activate pre-commit hooks
    pre-commit install

    # Build the exhaust-ma cffi library
    python exhaust_ma/build_cffi.py

At this point running

    python -m exhaust_ma

Should output

   BattleResult(dead=[Warrior(name='imp.rc')], alive={Warrior(name='jaguar.rc')})

If it doesn't something has gone wrong, If you need further assistance open an issue and include all the output of all the commands you have run and I'll see what I can do.

Pull requests are more than welcome. As long as you've installed the pre-commit hooks most code style issues should be checked automatically.

Updating/adding tests is appreciated but by no means a requirement for a PR to get accepted.

License

GNU GENERAL PUBLIC LICENSE Version 2

About

Fast CoreWars redcode simulator, python bindings.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages