GamesCrafters / GamesmanPuzzles

🧩 A Python Project dedicated to providing functionality for solving puzzles.
GNU General Public License v3.0
4 stars 3 forks source link

GamesmanPuzzles

Build Status codecov

A collection of Puzzles bundled together in a simple yet powerful Python interface. Developed as of part of the UC Berkeley GamesCrafters.

Installation

Clone this repository and install the dependencies (it's recommended to use a virtualenv when installing dependencies of any project):

git clone https://github.com/GamesCrafters/GamesmanPuzzles.git
cd GamesmanPuzzles
pip install -r requirements.txt
pip install -e .

To get optional closed-form solver for Lights Out, run the following commands from the project's root directory:

cd puzzlesolver/extern
python setup.py build_ext --inplace

Run from the base directory of the repository

cd puzzlesolver/players
python tui.py hanoi

to play a puzzle of Towers of Hanoi.

Solving Puzzles

You can solve all the puzzles by running the following in the base project directory:

python -m scripts.solve

Serving Puzzles

Run from the base directory of the respository

python -m scripts.server

to access the webserver locally. The server should be running at http://127.0.0.1:9001/.

Routes

Testing (Broken)

To run all the tests, run the following command:

pytest --cov puzzlesolver

Exploring GamesmanPuzzles

Tips for exploring this repository:

  1. Follow the guides and learn how to create a puzzle and a solver!
  2. Definitely explore the puzzlesolver in depth.
  3. Understand what a puzzle tree is.

Contributing to GamesmanPuzzles

See contributing

Contributors:

Spring 2020: Anthony Ling, Mark Presten, Arturo Olvera

Fall 2020: Anthony Ling, Mark Presten, Brian Delaney, Yishu Chao, Sophia Xiao

Spring 2021: Anthony Ling, Mark Presten, Mia Campdera-Pulido

Fall 2022: Linh Tran

Spring 2023: Christopher Nammour

Current: Cameron Cheung, Robert Shi