Skip to main content

Sokoban and variants game utilities

Project description

sokoenginepy - Sokoban and variants

version license python_versions python_implementations travis docs Codacy Badge codecov

This project implements various utilities for Sokoban:

  • board representation for Sokoban, Hexoban, Trioban and Octoban variants with support for Sokoban+ and Multiban for all four variants
  • movement implementation
  • reading and writing of level collections in .sok, .xsb, .tsb, .hsb and .txt file formats

It provides two almost identical implementations:

  • sokoneginepy - Python implementation and package
  • libsokoengine - C++ library with API that is 99.99% identical to Python

On Linux, Python package can also be optionally built with native extensions so that it utilizes libsokoengine for raw speed.

libsokoengine can be built completely independently, and consumed by native C++ clients.

Why?

  • experimenting with Boost.Graph in C++ and NetworkX in Python
  • experimenting with pybind11
  • playing with Sokoban file formats; conversion and validation, especially for Hexoban variant
  • ...

Install

sokoenginepy package from [PyPi]:

pip install sokoenginepy
  • libsokoengine can be built from source code, details are in README.libsokoengine.md
  • sokoenginepy can be optionally built with native C++ extensions, details are in INSTALL.md

Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sokoenginepy-0.5.4.tar.gz (1.5 MB view hashes)

Uploaded Source

Built Distribution

sokoenginepy-0.5.4-cp39-cp39-manylinux_2_31_x86_64.whl (7.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.31+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page