Skip to content

Latest commit

 

History

History
137 lines (114 loc) · 4.76 KB

CHANGELOG.md

File metadata and controls

137 lines (114 loc) · 4.76 KB

Changelog

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.

[0.0.3] - 2018-01-11

Added

  • Initial release!
  • Solve the black-and-white nonograms using several methods
  • Print out the solving process on the console or the web-page (SVG)

[0.1.0] - 2018-01-12

Fixed

  • examples distribution

[0.1.1] - 2018-01-18

Added

  • color puzzles solver

[0.1.2] - 2018-01-30

Added

  • choose the renderer in URL
  • compress the page with gzip
  • documentation with examples and references

Fixed

  • requirements for python3 (futures)
  • suppress any WARNING by default (use -v)

Removed

  • demo boards
  • lxml dependency (use standard XML parser)

[0.2.0] - 2018-05-19

Added

  • 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 for pynogram
  • 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

Fixed

  • 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 and CellState 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

[0.2.1] - 2018-06-01

Added

  • new visualization mode --curses (Linux only)
  • --show-examples-folder to find folder with embedded puzzles

Fixed

  • issues with Unicode on Windows console
  • specify ubuntu version in travis CI

Updated

  • 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)

[0.3.0] - 2018-08-30

Added

  • 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

Fixed

  • 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

Updated

  • 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

[0.3.1] - 2018-09-12

Added

  • 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)

Fixed

  • 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

Updated

  • refactored out partial_sums (several solvers use it)
  • refactored 'solution --> clues' translator
  • rename ColoredSolver --> TrimmedSolver