PuzzleSolver/Source/functions/solve/structure.cpp

63 lines
1.5 KiB
C++

bool next()
{
//calculates next move according to log
//case puzzle solved
//return 0;
//case last log empty
//backtrack
//case last log exactly one solution
//put all remaining puzzle pieces into new log entry
//try next piece/place with solve abstraction level 0
//case last log multiple entries
//advance abstraction layer of last log by one and solve()
//or pick first if highest level reached
//return 1;
}
void solve()
{
//case
//abstraction layer = 0
//go to abstraction layer 0 solver
//case
//abstraction layer = 1
//go to abstraction layer 1 solver
//default
//random one of the parts
}
void abstractionlayer0solver()
{
//throw all remaining puzzle pieces into log
//remove all impossible
}
void abstractionlayer1solver()
{
//remove all impossible according to abstraction layer one
}
void setsolution()
{
//put
//set pointer to log into matrix
}
void backtrack()
{
//following possibilities:
//last log entry empty
//delete last log + backtrack
//last log entry only one solution
//delete last log + backtrack
//last log entry multiple solutions (and current one was randomed)
//delete randomed piece from puzzleCollector and go to next (which might random again depending on function)
}