[update some comments in the sourcecode that were quite outdated
Andreas Röver <roever@users.sourceforge.net>**20060214171644] {
hunk ./src/lib/assembler_0.cpp 711
-         *
-         * FIXME: possible improvement
-         * For some columns is is necessary that they are not at least one but even
-         * bigger. Columns for multi pieces for example need to have at least the value
-         * of the number of instances, e.g if there are 10 instances of a multi piece
-         * each of that instance needs to fit at least 10 times
hunk ./src/lib/assembler_0.h 32
-/* the order of pieces is mostly unimportant, except for the
- * very first piece. this is added with removed symmetry of the
- * target shape. for this the first piece must not have any symmetry
- * at all, or the program will also calc some or all rotatet solutions  FIXME
- *
- * currently we also find all solutions for puzzles with multiple identical
- * pieces serveral time. e.g. if your puzzle has 2 pieces of type a and 3 of
- * type b and all others once you get each solution 2! times 3! = 12 times.
- * this is a real problem with e.g. loveley18. Here we have 11 identical piece
- * wich leads to each solution 11! = 39,916,800 times. This is not good.
- *
- * the problem is how to avoid these solutions with the dancing link algorithm
- * the current idea is to sort the identical pieces. Piece n+1 must have a position
- * that is later in the position list than piece n. How to achieve this. If one of
- * the pieces with serveral instances get's places, all others need to be placed, too
- *
- * the problem is the dancing link alg. may select a piece to place next and also
- * a unit of the puzzle to be filled next. In cas a piece is selected it's simply
- * the upper mentioned step to take. Place all the instances of the piece at once
- * using the ordered theorem. and then go on dancing :-)
- *
- * but if we selct a voxel to be filled then the program goes through all pieces
- * and all possible placements of these pieces that fill the selected voxel we have
- * to check each possibility if a piece is selected that
- */
-
-
hunk ./src/lib/assembler_0.h 36
- * for a real puzzle assemlber this class must be dereved from and some functions
+ * for a real puzzle assemlber this class must be derived from and some functions
hunk ./src/lib/assembler_0.h 42
- * does some initialisation and then calls countNodes. You have to return the number
- * of nodes that you require for your part of the matrix. The createMatrix function
- * then allocaed enough memory for this and calls prepare. Here you have to fill in
- * the matrix with your node (including the header.
+ * does some initialisation and then calls prepare. Here you have to fill in
+ * the matrix with your node (including the header).
+ *
+ * In this preparation you are asked to try to make the algorithm avoid finding
+ * rotated solutions (its for your own speed). But if you can not do so, you
+ * need to call checkForTransformedAssemblies(symBreakerPiece). This tells
+ * this base class to check each found solution, if it may be a rotation of
+ * another one and drop it automatically.
hunk ./src/lib/assembler_0.h 55
- * there is one assumption in the class: empty voxels don't exist. So you have to find
- * an interpretation for your space that doesn't require empty voxels within the 3d
- * space of the voxels
hunk ./src/lib/disassembler_0.cpp 400
- *
- * FIXME: we should first try to remove a single piece, then to remove groups of pieces
- * and then check movement of pieces
hunk ./src/lib/puzzle.cpp 748
-  // FIXME, remove color constrains and shift the colors inside the shapes
+  // remove color constrains that include this color
}
