Skip to main content

Python package for solving group based puzzles

Project description

groupsolver

Python package for solving group based puzzles

Puzzles like the Rubik's cube represent a mathematical group structure. The groups represented by these puzzles can usually be factored into simpler subgroups. In general these groups are either permutation subgroups (in which pieces are permutated with each other) or orientation subgroups (in which pieces can be in one of N different states of orientation).

For example, the Rubik's cube can be represented by four subgroups:

  • The orientation of edges
  • The orientation of corners
  • The permutation of edges
  • The permutation of corners

This principle was used by Herbert Kobiemba's two phase algorithm to represent the states of the Rubik's cube. The groupSolver project is meant to generalize this idea to other group based puzzles and create an API for solving or exploring the these puzzles' group structures given a subgroup factorization.

Installation

This project is maintained in GitLab and also hosted on PyPI like all Python packages are supposed to be. Thus, installing from PyPI can be done with: pip install groupsolver

For developing purposes, it's preferable to use a virtualenv. Use python3 -m venv /path/to/virtual/environment/ to create a virtualenv, then cd to where setup.py is, then run either python3 setup.py install or pip3 install . to install this source.

Testing

Tests in this project are implemented with the unittest framework. There are several ways to run these tests, but the simplest is to call python3 setup.py test

Documentation

Thanks to Sphinx, documentation can be generated from comments by going to the doc directory and running make html. The generated documentation will have its root at doc/build/index.html.

The most recent documentation for the master branch can be found on GitLab Pages if it isn't broken.

Project details


Release history Release notifications

This version
History Node

1.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
groupsolver-1.0-py3-none-any.whl (25.0 kB) Copy SHA256 hash SHA256 Wheel py3
groupsolver-1.0.tar.gz (21.7 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page