#11379: Add Quantumino solver to sage/games
---------------------------+------------------------------------------------
   Reporter:  slabbe       |          Owner:  slabbe      
       Type:  enhancement  |         Status:  needs_review
   Priority:  major        |      Milestone:  sage-4.7.1  
  Component:  misc         |       Keywords:  sd31        
Work_issues:               |       Upstream:  N/A         
   Reviewer:  Rob Beezer   |         Author:              
     Merged:               |   Dependencies:              
---------------------------+------------------------------------------------
Changes (by slabbe):

  * status:  needs_work => needs_review


Old description:

> Last week I wrote code to solve the Quantamino Puzzle [1].
>
> Will post a patch soon.
>
> [1] http://www.youtube.com/watch?v=jX_VKzakZi8
>
> For the patchbot:
>
> '''Apply:'''
>   1.  [attachment:trac_11379_quantamino-sl.patch]
>   1.  [attachment:trac_11379_corrections-sl.patch]
>   1.  [attachment:trac_11379-size-suggestion-updated.patch]

New description:

 Some code to solve the
 
[http://familygamesamerica.com/mainsite/consumers/productview.php?pro_id=274&search=quantumino|
 Quantumino Puzzle] (see also [http://www.youtube.com/watch?v=jX_VKzakZi8|
 this video] on youtube).

 For the patchbot:

 '''Apply:'''

  1. [attachment:trac_11379_quantamino-sl.patch]
  1. [attachment:trac_11379_corrections-sl.patch]

--

Comment:

 Ok, so I just re-uploaded the correction patch. The size suggestion patch
 as been folded into that correction patch. So only two patches are needed
 to be applied (the one that has already been reviewed and the correction
 patch).

 So, compared to what has already been reviewed, I did a bunch of
 improvements: I created a new file {{{sage/combinat/tiling.py}}} and moved
 the polyomino class into it. Also, I created a new class called
 {{{TilingSolver}}} which solves the general problem of Tiling a box by
 polyomino. This class replaces the old function
 {{{general_puzzle_solver}}} which I might misspell. The {{{TilingSolver}}}
 class allows to do more introspection like getting the rows passed to the
 DLX solver and count them. One can also get the DLX Solver. I managed to
 write the {{{Polyomino}}} and {{{TilingSolver}}} abstract enough so that
 they can be defined in any dimension. Ploting works when the dimension is
 2 or 3. I also added parameters to allow (or not) reflections and
 rotations and whether the pieces can be reused or not.

 There is still one issue mentionned in the review that I did not fixed.
 The holes in the polyomino. Maybe tomorrow we can think about a efficient
 way to fix this?

 Question: Should I use Pentomino like Donald Knuth does or Pentamino like
 the game Quantumino calls the pieces? Which is best?

 Good night!

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11379#comment:16>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to