Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Commits on Feb 29, 2012
  1. Version bump to 1.1.2

  2. Version bump to 1.1.1

  3. - Added legal license (MIT license).

    - Made the Rakefile nicer by actually printing out error messages when loading gems goes fails.
    - Shortened the gem summary so it doesn't get elided on
Commits on Feb 28, 2012
  1. Version bump to 1.1.0

  2. Fixed 'puzzlinkes' typo.

  3. Fixed several typos in the README. Fixed some comments in dancing_lin…

    …ks.rb. Renamed Node#choose and Node#unchoose to Node#choose_except_self_column and Node#unchoose_except_self_column. Renamed LinkMatrix#remove_row to Node#choose. These changes make it a lot clearer what is going on. Hopefully nobody is relying on thos functions yet.
Commits on Feb 27, 2012
  1. Deleted my other attempts. Started dumbing down the README.rdoc file …

    …so it looks OK on github. This means we can't link to classes and methods.
  2. Got the specs to pass on Ruby 1.8.7. Some issues were caused by our u…

    …se of 'Set' in dancing_links.rb; apparently it doesn't always enumerate its elemnents in the same order that they were provided.
  3. Got rid of find_each_exact_cover_recursive, replacing it with each_ex…

    …act_cover_recursive which can find all the exact covers. I didn't realize that Donald Knuth's algorithm was capable of finding all the exact covers because I misinterpreted the pseudocode, but now when I look back it's pretty clear that it can.
  4. A lot more work on README.rdoc. Added the templates to the documentat…

    …ion of the different classes so people can get an instant idea of what the class represents, and because its convenient to have that code on hand when you are writing a new puzzle file. Added examples/solve_sudoku.rb.
Commits on Feb 25, 2012
  1. dancing_links.rb: Made the #add_row method filter out duplicate colum…

    …n ids (by converting to a Set) because otherwise it causes obscure bugs in each_exact_cover.
Commits on Feb 20, 2012
  1. Renamed the node.cover and node.uncover functions to node.choose and …

    …node.unchoose to avoid confusion and make the meaning clearer.
  2. Made some improvements to time_test.rb. I am shocked that the puzzle …

    …that took over an hour to solve when I first made the gem now takes a mere 5 seconds.
  3. Made time_test.rb so we can evaluate if a change to the library has a…

    … major effect on the performance.
Something went wrong with that request. Please try again.