changed name of layer 1 to layer 0
and slightly modified speedtable: hard coded inverse to make calculation easier
This commit is contained in:
parent
c0f0417d3b
commit
ab2741a743
@ -5,9 +5,11 @@
|
|||||||
#include "DestructionPower.h"
|
#include "DestructionPower.h"
|
||||||
|
|
||||||
//TODO! Add more layers here!
|
//TODO! Add more layers here!
|
||||||
|
|
||||||
|
//sets relations of speed for the different layers
|
||||||
map<int,float> DestructionPower_Properties::SpeedTable =
|
map<int,float> DestructionPower_Properties::SpeedTable =
|
||||||
{
|
{
|
||||||
{1,0.001}
|
{0,0.99}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -53,7 +55,7 @@ void DestructionPower::DestructionOfSurrounding(const coor constraintCoordinate)
|
|||||||
m_constraintMatrix[constraintCoordinate.col][constraintCoordinate.row].DestructionArray[i] /=divisor;
|
m_constraintMatrix[constraintCoordinate.col][constraintCoordinate.row].DestructionArray[i] /=divisor;
|
||||||
else
|
else
|
||||||
//create default destructionPower //TODO find some better solution for default
|
//create default destructionPower //TODO find some better solution for default
|
||||||
m_constraintMatrix[constraintCoordinate.col][constraintCoordinate.row].DestructionArray[i] =1-m_constraintMatrix[constraintCoordinate.col][constraintCoordinate.row].SpeedTable[i+1];
|
m_constraintMatrix[constraintCoordinate.col][constraintCoordinate.row].DestructionArray[i] =1-m_constraintMatrix[constraintCoordinate.col][constraintCoordinate.row].SpeedTable[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ void setsolution(vector<LogEntry>& log, Puzzle& puzzleMat)
|
|||||||
{
|
{
|
||||||
//advance number of randomed part count
|
//advance number of randomed part count
|
||||||
if(log.back().PieceCollector.size()>1) log.back().advanceRandomed();
|
if(log.back().PieceCollector.size()>1) log.back().advanceRandomed();
|
||||||
|
|
||||||
//'set=true' all 4 rotations of pieces in puzzleBox
|
//'set=true' all 4 rotations of pieces in puzzleBox
|
||||||
for(int i=0;i<puzzleMat.p_myBox.size();i++)
|
for(int i=0;i<puzzleMat.p_myBox.size();i++)
|
||||||
if(puzzleMat.p_myBox[i]->GetPartID()==log.back().PieceCollector.begin()->second->GetPartID())
|
if(puzzleMat.p_myBox[i]->GetPartID()==log.back().PieceCollector.begin()->second->GetPartID())
|
||||||
@ -152,7 +152,7 @@ bool backtrack(vector<LogEntry>& log, Puzzle& puzzleMat)
|
|||||||
|
|
||||||
void calculateTrueDestructionPower(vector<LogEntry>& log, Puzzle& puzzleMat, float Layerworth) {
|
void calculateTrueDestructionPower(vector<LogEntry>& log, Puzzle& puzzleMat, float Layerworth) {
|
||||||
float destructionPower = sqrt(
|
float destructionPower = sqrt(
|
||||||
Layerworth * puzzleMat.dp.m_constraintMatrix[0][0].SpeedTable[log.back().abstractionLevel+1]);
|
Layerworth * puzzleMat.dp.m_constraintMatrix[0][0].SpeedTable[log.back().abstractionLevel]);
|
||||||
|
|
||||||
//save destructionArray for when coor is done
|
//save destructionArray for when coor is done
|
||||||
if(puzzleMat.tmp_destructionArray.empty())
|
if(puzzleMat.tmp_destructionArray.empty())
|
||||||
@ -232,13 +232,13 @@ bool SetBestOrMoreLayersArithmetical(vector<LogEntry>& log, qualityVector& cqVec
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch(log.back().abstractionLevel+1)
|
switch(log.back().abstractionLevel)
|
||||||
{
|
{
|
||||||
case 1: threshold = 0.90; break;
|
case 0: threshold = 0.90; break;
|
||||||
case 2: threshold = 0.80; break;
|
case 1: threshold = 0.80; break;
|
||||||
case 3: threshold = 0.75; break;
|
case 2: threshold = 0.75; break;
|
||||||
case 4: threshold = 0.66; break;
|
case 3: threshold = 0.66; break;
|
||||||
case 5: threshold = 0.60; break;
|
case 4: threshold = 0.60; break;
|
||||||
default: threshold = 0.5; break;
|
default: threshold = 0.5; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ int LogEntry::randomed(0);
|
|||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|
||||||
unsigned int cols=9,rows=8;
|
unsigned int cols=4,rows=5;
|
||||||
|
|
||||||
vector<LogEntry> log;
|
vector<LogEntry> log;
|
||||||
Puzzle puzzleMat(cols, rows);
|
Puzzle puzzleMat(cols, rows);
|
||||||
|
Loading…
Reference in New Issue
Block a user