All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Initial release!
- Solve the black-and-white nonograms using several methods
- Print out the solving process on the console or the web-page (SVG)
- examples distribution
- color puzzles solver
- choose the renderer in URL
- compress the page with gzip
- documentation with examples and references
- requirements for python3 (futures)
- suppress any WARNING by default (use -v)
- demo boards
- lxml dependency (use standard XML parser)
- adapt Ben-Gurion University solver (BGU) for better line solver
- searching-backtracking algorithm
- support for pypy (both 2 and 3). This significantly improved
the performance of terminal-based solver. However, the web version
becomes more unresponsive on any pypy interpreter, so it's recommended
to use py3 for
pynogram-web
and pypy3 forpynogram
- use numpy for black and white boards if available
- read local PBN-formatted puzzles
- use tornado log formatter if tornado package is available
- statistics on the most time-consuming boards (webpbn.com). See docs/benchmarks.md for details
- show the search tree at the end of solving difficult puzzles
- Faase (one of the most difficult known board) and n-dom boards
- list of local boards to the web UI (/board/local/, /board/local/source)
- test for colored SVG puzzle
- improved some bottlenecks by profiling:
- commenting some debug logs
- add __slots__
- do as less as possible type conversions (set to list to tuple, etc)
- replace string color names in
ColoredBoard.cells
with their integer codes
- use named tuples
CellPosition
andCellState
instead of pairs and triples - do not manipulate
Board.cells
directly anymore, use helper methods now - cache is more intelligent now
- refactor the Simpson line solver
- flake8 now checks everything
- new visualization mode
--curses
(Linux only) --show-examples-folder
to find folder with embedded puzzles
- issues with Unicode on Windows console
- specify ubuntu version in travis CI
- improved README: more examples and descriptions
- more clear rendering in text-grid mode
- add PyPy in setup.py
- gif image examples (to mirror recent algorithm accelerations)
- colors are single-numbers now (not sets): HUGE performance gains
- http://nonograms.org puzzles parse and solve
- another 'efficient' solver. Based on the work 'An Efficient Approach to Solving Nonograms'
- trim off already solved lines before backtracking
- reduce color board to equivalent black-and-white before backtracking (if possible)
- SVG renderer draws color clues
- pylint in CI
- new hard puzzle in local collection: LalaFrogKK
- minor support for blotted puzzles parsing
- set US locale to correctly show non-ASCII boxes in --curses mode
- reduce refresh pause in --curses mode
- unsuppressed pylint warnings
- correctly install dependencies with
python setup.py test
- massive refactoring: move things around
- solvers have common ancestor now
- board refactoring: made an hierarchy to separate methods
- reduce backtracking logs
- optimize benchmarks slightly
- more verbose requirements.txt
- multiple imports now made on separate lines
- replace " with ' whenever possible
- replace '%s' with %r
- remove irrelevant benchmarks results
- more readable README
- more references in README
- codebeat badge
- blotted puzzles solver
- draw two- and three-colored (partially solved) cells in SVG
- trim off all solved cells in TrimmedSolver, not only spaces
- expand_generator decorator
- useful ignored context manager
- benchmarks for previously reduced color puzzles (without reducing)
- dynamically create a black board while reducing colored puzzle (with the
make_board
factory) - draw a grid lines above the color cells to improve SVG image
- refactored out partial_sums (several solvers use it)
- refactored 'solution --> clues' translator
- rename ColoredSolver --> TrimmedSolver