improved random generator, made information call from Part more direct
todo: add indexing to puzzlepieces and all four rotation into puzzlebox (or maybe only log?). this needs to be done for random algorithm and for realPuzzle
This commit is contained in:
parent
bd07d291db
commit
86c4e26bc7
@ -18,7 +18,7 @@ bool AbstractionLayer_1::EvaluateQuality (const coor constraintCoordinate, quali
|
||||
{
|
||||
for(auto it = qVector.begin(); it != qVector.end(); it++)
|
||||
{
|
||||
if(PlaceOfPartGood(constraintCoordinate, it->first->myLayers->m_test1.m_connections))
|
||||
if(PlaceOfPartGood(constraintCoordinate, it->first->m_test1.m_connections))
|
||||
continue;
|
||||
qVector.erase(it++);
|
||||
}
|
||||
@ -92,7 +92,7 @@ qualityVector AbstractionLayer_1::returnInBox(vector<Part>& PuzzleBox)
|
||||
int i=0;
|
||||
for(int col=1;col<m_constraintMatrix.size()-1;col++)
|
||||
for(int row=1;row<m_constraintMatrix[col].size()-1;row++)
|
||||
PuzzleBox[i++].myLayers->m_test1.m_connections=m_constraintMatrix[col][row].m_connections;
|
||||
PuzzleBox[i++].m_test1.m_connections=m_constraintMatrix[col][row].m_connections;
|
||||
|
||||
}
|
||||
|
||||
|
@ -17,4 +17,7 @@ private:
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif //SOURCE_ABSTRACTIONLAYER_1_PROPERTIES_H
|
||||
|
@ -5,25 +5,45 @@
|
||||
#include "../../header/solve.h"
|
||||
|
||||
|
||||
void Puzzle::printPuzzle() {}
|
||||
void Puzzle::putIntoBox() {}//puts a puzzlepiece back into its box
|
||||
void Puzzle::printPuzzle()
|
||||
{
|
||||
//print every layer individually for now and later make complete visual
|
||||
}
|
||||
|
||||
//puts a puzzlepiece back into its box
|
||||
void Puzzle::putIntoBox()
|
||||
{
|
||||
Part tmpPart;
|
||||
for(int i=0;i<this->getSizeAsCoor().col;i++)
|
||||
{
|
||||
for(int j=0;j<this->getSizeAsCoor().row;j++)
|
||||
{
|
||||
//TODO! add rotation of all parts
|
||||
//TODO! add id to every part (how)
|
||||
tmpPart.m_test1=this->a1->m_constraintMatrix[i][j];
|
||||
//TODO! add all other layers here
|
||||
myBox.emplace_back(tmpPart);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//shuffles the existing box in Puzzle
|
||||
void Puzzle::shuffle()
|
||||
{
|
||||
random_shuffle(myBox.begin(),myBox.end());
|
||||
for (auto &i:myBox)
|
||||
{
|
||||
//i.myLayers->m_test1
|
||||
//shift(rand()%4,i);
|
||||
//i.resetShift();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Puzzle::removeConstrains(coor removeCoordinates) {}//deletes all constraints from all abstractionlayers
|
||||
//deletes all constraints from all abstractionlayers
|
||||
void Puzzle::removeConstrains(coor removeCoordinates)
|
||||
{
|
||||
this->a1->RemoveConstraintOnPosition(removeCoordinates);
|
||||
}
|
||||
|
||||
void Puzzle::createRandomPuzzle()
|
||||
{
|
||||
a1->CreateRandomPuzzle();
|
||||
}
|
||||
}
|
||||
|
||||
void Puzzle::createp_box()
|
||||
{
|
||||
}
|
||||
|
@ -38,7 +38,8 @@ public:
|
||||
m_numOfRotations = numOfRotations;
|
||||
}
|
||||
|
||||
LayerContainer* myLayers;
|
||||
AbstractionLayer_1_Properties m_test1;
|
||||
DestructionPower_Properties m_destruction;
|
||||
private:
|
||||
int32_t m_partID;
|
||||
uint8_t m_numOfRotations;
|
||||
|
@ -50,10 +50,11 @@ public:
|
||||
void removeConstrains(coor removeCoordinates);
|
||||
void printPuzzle();
|
||||
|
||||
void createRandomBox(){createRandomPuzzle();putIntoBox();shuffle();}
|
||||
void createRandomBox(){createRandomPuzzle();putIntoBox();shuffle();createp_box();}
|
||||
void createRandomPuzzle();
|
||||
void putIntoBox();
|
||||
void shuffle();
|
||||
void createp_box();
|
||||
|
||||
vector<Part> myBox;
|
||||
vector<Part*> p_myBox;
|
||||
@ -64,14 +65,6 @@ private:
|
||||
unsigned int cols;
|
||||
};
|
||||
|
||||
class LayerContainer
|
||||
{
|
||||
public:
|
||||
AbstractionLayer_1_Properties m_test1;
|
||||
DestructionPower_Properties m_destruction;
|
||||
};
|
||||
|
||||
|
||||
bool next(vector<LogEntry>& log, vector<Part*>& p_Box, Puzzle& puzzleMat);
|
||||
coor calculateNextCoor(vector<LogEntry>& log, vector<Part*>& p_Box, Puzzle& puzzleMat);
|
||||
void solve(vector<LogEntry>& log, vector<Part*>& p_Box, Puzzle& puzzleMat);
|
||||
|
@ -13,7 +13,6 @@ int main()
|
||||
|
||||
//some advanced solver stuff
|
||||
vector<LogEntry> log;
|
||||
vector<Part*> p_myFirstBox;
|
||||
|
||||
Puzzle puzzleMat(cols, rows);
|
||||
puzzleMat.createRandomBox();
|
||||
|
Loading…
Reference in New Issue
Block a user