#include <disassembler_0.h>
Public Member Functions | |
disassembler_0_c (const problem_c *puz) | |
~disassembler_0_c () | |
Private Member Functions | |
separation_c * | disassemble_rec (const std::vector< unsigned int > &pieces, disassemblerNode_c *start) |
The real disassembly routine. | |
disassembler_0_c (const disassembler_0_c &) | |
void | operator= (const disassembler_0_c &) |
All involved steps are of size one. This enables us to use a simple tree search instead of A* which would normally be required for a graph search
disassembler_0_c::disassembler_0_c | ( | const problem_c * | puz | ) | [inline] |
disassembler_0_c::~disassembler_0_c | ( | ) | [inline] |
disassembler_0_c::disassembler_0_c | ( | const disassembler_0_c & | ) | [private] |
separation_c * disassembler_0_c::disassemble_rec | ( | const std::vector< unsigned int > & | pieces, | |
disassemblerNode_c * | start | |||
) | [private, virtual] |
The real disassembly routine.
It separates the puzzle into 2 parts and gets called recursively with each subpart to disassemble
the return is the disassembly tree for that part
pieces contains the names of all the pieces that are still inside the subpuzzle puzzle, start defines the starting position of these pieces
Implements disassembler_a_c.
References disassembler_a_c::checkSubproblems(), nodeHash::clear(), disassemblerNode_c::decRefCount(), disassembler_a_c::find(), disassembler_a_c::init_find(), nodeHash::insert(), and disassemblerNode_c::is_separation().
void disassembler_0_c::operator= | ( | const disassembler_0_c & | ) | [private] |