std::vector < std::vector < std::vector < int >> > levels;
const std::vector < std::vector < std::vector < int >> > levels =
{
{
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 9, 9, 9, 9, 3, 3, 9, 9, 9, 9 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
{ 1, 1, 3, 3, 1, 1, 3, 3, 1, 1 },
{ 5, 5, 1, 1, 4, 4, 1, 1, 5, 5 },
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 9, 9, 9, 9, 0, 0, 9, 9, 9, 9 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
{ 1, 1, 3, 3, 1, 1, 3, 3, 1, 1 },
{ 5, 5, 1, 1, 4, 4, 1, 1, 5, 5 },
{ 4, 4, 2, 2, 4, 4, 2, 2, 4, 4 },
{ 1, 1, 3, 3, 1, 1, 3, 3, 1, 1 },
{ 5, 5, 5, 5, 9, 9, 5, 5, 5, 5 }, { 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 },
{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
{ 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
{ 5, 5, 0, 0, 5, 5, 0, 0, 5, 5 },
{ 5, 5, 0, 0, 5, 5, 0, 0, 5, 5 },
{ 0, 0, 4, 4, 0, 0, 4, 4, 0, 0 },
{ 0, 0, 4, 4, 0, 0, 4, 4, 0, 0 },
{ 3, 3, 0, 0, 3, 3, 0, 0, 3, 3 },
{ 3, 3, 0, 0, 3, 3, 0, 0, 3, 3 },
{ 0, 0, 2, 2, 0, 0, 2, 2, 0, 0 },
{ 0, 0, 2, 2, 0, 0, 2, 2, 0, 0 },
{ 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 },
{ 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 }
},
{
{ 4, 4, 0, 0, 2, 2, 0, 0, 4, 4 },
{ 4, 4, 0, 0, 2, 2, 0, 0, 4, 4 },
{ 0, 0, 3, 3, 0, 0, 3, 3, 0, 0 },
{ 0, 0, 3, 3, 0, 0, 3, 3, 0, 0 },
{ 9, 9, 0, 0, 1, 1, 0, 0, 9, 9 },
{ 9, 9, 0, 0, 1, 1, 0, 0, 9, 9 },
{ 0, 0, 5, 5, 0, 0, 5, 5, 0, 0 },
{ 6, 6, 0, 0, 7, 7, 0, 0, 6, 6 },
{ 0, 0, 8, 8, 0, 0, 8, 8, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
{ 8, 7, 6, 5, 4, 4, 5, 6, 7, 8 },
{ 7, 6, 5, 4, 3, 3, 4, 5, 6, 7 },
{ 6, 5, 4, 3, 2, 2, 3, 4, 5, 6 },
{ 5, 4, 3, 2, 1, 1, 2, 3, 4, 5 },
{ 4, 3, 2, 1, 9, 9, 1, 2, 3, 4 },
{ 4, 3, 2, 1, 9, 9, 1, 2, 3, 4 },
{ 5, 4, 3, 2, 1, 1, 2, 3, 4, 5 },
{ 6, 5, 4, 3, 2, 2, 3, 4, 5, 6 },
{ 7, 6, 5, 4, 3, 3, 4, 5, 6, 7 },
{ 8, 7, 6, 5, 4, 4, 5, 6, 7, 8 }
},
{
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
{ 1, 9, 2, 2, 1, 1, 2, 2, 9, 1 },
{ 9, 1, 1, 9, 3, 3, 9, 1, 1, 9 },
{ 1, 9, 2, 2, 1, 1, 2, 2, 9, 1 },
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
}
};
std::vector < std::vector < std::vector < int >> > generateRandomLevels()
{
std::vector < std::vector < std::vector < int >> > generatedLevels;
for( int lvl = 0; lvl < NUM_LEVELS; ++lvl )
{
std::mt19937 gen( lvl * 222 + lvl * 888 ); std::uniform_int_distribution < > blockDist( 0, 5 );
std::uniform_int_distribution < > indestructibleChance( 0, 100 );
std::vector < std::vector < int >> level;
for( int row = 0; row < ROWS; ++row )
{
std::vector < int > line;
for( int col = 0; col < COLS; ++col )
{
int value = blockDist( gen );
if( indestructibleChance( gen ) < 7 )
value = 9;
if( indestructibleChance( gen ) < 30 )
value = 0;
line.push_back( value );
}
level.push_back( line );
}
generatedLevels.push_back( level );
}
return generatedLevels;
}