MyNixOS website logo
Description

Creating graphics for pencil puzzles.

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

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:

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: |
    o o-o-o-o o-o
     .|. . .|.|.|
    o o o-o-o o o
     .|.|. . .|.|
    o o o-o-o-o o
     .|. . . . .|
    o-o o o-o-o o
    |. . .|. .|.|
    o-o o-o o o o
     .|.|. . .|.|
    o-o o o o o o
    |. .|. . .|.|
    o-o-o o o o-o
  liars: |
    ...X..
    .X....
    X.....
    .....X
    ....X.
    ..X...

There is a demo web application that provides some more examples and that can be used to generate SVG images from such puzzle descriptions.

Or see a puzzle set that covers the puzzle types that are supported as of 2014-05.

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.svg and slitherliar-sol.svg, 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.

Metadata

Version

0.3.0.0

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows