Drawing pencil puzzles
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data/fonts embed fonts Nov 26, 2018
src Yajilin Feb 4, 2019
static keep old image around in case of error Nov 27, 2018
tests sudoku-extra-regions example Feb 5, 2019
tools
web
.gitignore ignore examples/diff Dec 14, 2018
.travis.yml stack without haddocks for travis Feb 4, 2019
CHANGES.md release 0.3.4.1 Feb 4, 2019
LICENSE full name in LICENSE Jan 25, 2014
Makefile format tests Dec 4, 2018
README.md
Setup.hs cabal init Jan 25, 2014
puzzle-draw.cabal
stack.yaml build against unreleased upstream Rasterific Dec 6, 2018

README.md

Build Status

puzzle-draw

puzzle-draw is a library and command-line tool for drawing pencil puzzles using Diagrams. It aims to provide a utility layer on top of Diagrams to help with drawing arbitrary puzzles, as well as supporting several specific puzzle types directly. In addition, it includes functionality for parsing puzzle data from a YAML file format.

Examples

A liar slitherlink with solution:

Liar Slitherlink

This was rendered from the following YAML document:

type: slitherlinkliar
puzzle: |
  1..0.3
  .03222
  0....1
  3....3
  32202.
  3.3..3
solution:
  loop: |
    . .-.-.-. .-.
      |     | | |
    . . .-.-. . .
      | |     | |
    . . .-.-.-. .
      |         |
    .-. . .-.-. .
    |     |   | |
    .-. .-. . . .
      | |     | |
    .-. . . . . .
    |   |     | |
    .-.-.     .-.
  liars: |
    ...X..
    .X....
    X.....
    .....X
    ....X.
    ..X...

For more examples, see:

  • A demo web application that provides some more examples and that can be used to generate SVG images from such puzzle descriptions.
  • The gallery of examples used to test the program.
  • A puzzle set that covers the puzzle types that were supported as of 2014-05.
  • Most of the puzzle graphics on the puzzle blog maybepuzzles were generated with this tool.

Installing

This is a brief overview of how to install the command line tool. The easiest way right now is to get stack, clone this repository, and install using

$ stack install

Alternatively, get a Haskell environment by installing the Haskell Platform. Then install puzzle-draw with cabal:

$ cabal install puzzle-draw

Running

As an example, suppose the Liar Slitherlink puzzle description above is copied into a file slitherliar.pzl.

$ drawpuzzle slitherliar.pzl

This will generate two files slitherliar.png and slitherliar-sol.png, containing the puzzle and solved puzzle, respectively. Run

$ drawpuzzle -h

to see some command line options that allow modifying the program's behaviour, e.g., choosing the output format.