#include <iostream>
#include <string>
#include <vector>
#include <iterator>
using namespace std;
const char * level1[ 23 ] =
{
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ,
"X X" ,
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X" ,
"X X K X D X X" ,
"X XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXX X X" ,
"X X X X X XXXXX X X" ,
"X X XXXXX X XXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXX X X" ,
"X X X X D X X X X X XXXXX X" ,
"X X XXXX X X XXXXXXXXXX X X X XXXX X X" ,
"X X X X E X XXXXXXXXX XXXXXXXX X XXXXX X X" ,
"X XXXXXXXXXXXXXXXX D X XXK X X X X KX X" ,
"X X X X KX XXXXXX XXXXXX XXXXXXXX X X X XXXXXXDX" ,
"X X X X X X X XXX X X X X D X X" ,
"X X X X X X XXXXXXXXXXXXXXX XXXXXXXXXXXXXX X XXXXX X X" ,
"X X X X X X X X X KX X X X" ,
"X X X X X X X X XXXXXXXXXXX X XXXXXXXXXXX X XXXXX X" ,
"X X X X X X X X X X KX X X X X X" ,
"X X X X X X X X XX X X XXXXXXXXXXXXX X X" ,
"X X X X X X X X X XXXXXXXX X X X X X X" ,
"X X X X X X X X X X X X X X" ,
"X X XXXXXXXXXXXXX X XXXXXXXX X X X XXXXXXXXXXXXXXXXXX X" ,
"XS X X" ,
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
} ;
// Player structure
struct playerinfo
{
int x; // X position
int y; // Y position
int keys; // Number of keys the player has
} ;
// Current game info structure
struct gameinfo
{
vector< string> board;
int level; // The level of the maze
playerinfo player; // Link to player data struct
int maxy( ) const { return board.size ( ) ; }
int maxx( ) const { return board.empty ( ) ? 0 : board[ 0 ] .size ( ) ; }
} ;
int main( )
{
gameinfo game;
game.board = vector< string> ( begin( level1) , end( level1) ) ;
cout << "Board is " << game.maxx ( ) << "x" << game.maxy ( ) << ": \n " ;
for ( auto & row : game.board )
cout << row << "\n " ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgY2hhciogbGV2ZWwxWzIzXSA9CnsKIlhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYIiwKIlggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYIiwKIlggIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYICAgICBYIiwKIlggIFggSyAgICAgICAgICAgICAgICAgICAgICAgICAgWCAgICAgICAgICAgIEQgICAgICAgICAgICAgICBYICBYIiwKIlggIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFggIFhYWFhYWFhYWCAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYICBYICBYIiwKIlggIFggIFggICAgICAgIFggICAgICAgICAgICAgICAgICBYICAgICAgICAgICAgICAgICAgIFhYWFhYICBYICBYIiwKIlggIFggICBYWFhYWCAgIFggIFhYWFhYWFhYWFhYWFhYICBYWFhYWFhYWCAgWFhYWFhYWFhYWFggICAgICBYICBYIiwKIlggIFggICAgICAgIFggIFggICAgICAgIEQgICAgICBYICBYICAgICAgWCAgIFggICAgICAgIFggIFhYWFhYICBYIiwKIlggIFggIFhYWFggIFggIFggIFhYWFhYWFhYWFggICBYICAgICBYICAgICAgICAgIFggIFhYWFggICAgICBYICBYIiwKIlggICAgICAgIFggICAgICAgIFggICBYICBFIFggIFhYWFhYWFhYWCAgWFhYWFhYWFggIFggIFhYWFhYICBYICBYIiwKIlggIFhYWFhYWFhYWFhYWFhYWFggICBEICAgIFggIFhYSyAgICAgIFggICAgICAgIFggIFggIFggICAgIEtYICBYIiwKIlggIFggICAgIFggICAgIFggS1ggICBYWFhYWFggIFhYWFhYWCAgWFhYWFhYWFggIFggIFggIFggIFhYWFhYWERYIiwKIlggIFggIFggIFggIFggIFggIFggICAgICAgICAgIFhYWCAgWCAgICAgICAgICAgIFggIFggIFggIEQgICBYICBYIiwKIlggIFggIFggIFggIFggIFggIFhYWFhYWFhYWFhYWFhYWCAgWFhYWFhYWFhYWFhYWFggIFggIFhYWFhYICBYICBYIiwKIlggIFggIFggIFggIFggIFggIFggICBYICAgICAgICAgICAgICAgWCAgICAgICAgICAgS1ggIFggICAgICBYICBYIiwKIlggIFggIFggIFggIFggIFggIFggICBYICBYWFhYWFhYWFhYWCAgWCAgWFhYWFhYWFhYWFggIFggIFhYWFhYICBYIiwKIlggIFggIFggIFggIFggIFggIFggICBYICBYICAgICBYICBLWCAgWCAgWCAgICAgICAgICAgIFggICAgICBYICBYIiwKIlggICAgIFggIFggIFggIFggIFggICAgICBYICBYICAgICBYWCAgWCAgWCAgICAgWFhYWFhYWFhYWFhYWCBYICBYIiwKIlggIFggIFggIFggIFggIFggIFggICBYICBYICBYWFhYWFhYWCAgWCAgWCAgICAgIFggICAgIFggICAgICBYICBYIiwKIlggIFggIFggICAgIFggICAgIFggICBYICBYICAgICAgICAgWCAgWCAgWCAgIFggICAgIFggICAgICAgICBYICBYIiwKIlggIFggIFhYWFhYWFhYWFhYWFggICBYICBYWFhYWFhYWCAgWCAgWCAgWCAgWFhYWFhYWFhYWFhYWFhYWFhYICBYIiwKIlhTIFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYIiwKIlhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYIgp9OwoKLy8gUGxheWVyIHN0cnVjdHVyZQpzdHJ1Y3QgcGxheWVyaW5mbwp7CiAgICBpbnQgeDsgICAgICAvLyBYIHBvc2l0aW9uCiAgICBpbnQgeTsgICAgICAvLyBZIHBvc2l0aW9uCiAgICBpbnQga2V5czsgICAvLyBOdW1iZXIgb2Yga2V5cyB0aGUgcGxheWVyIGhhcwp9OwoKLy8gQ3VycmVudCBnYW1lIGluZm8gc3RydWN0dXJlCnN0cnVjdCBnYW1laW5mbwp7CiAgICB2ZWN0b3I8c3RyaW5nPiBib2FyZDsKICAgIGludCBsZXZlbDsgICAgICAgICAgLy8gVGhlIGxldmVsIG9mIHRoZSBtYXplCiAgICBwbGF5ZXJpbmZvIHBsYXllcjsgICAgICAgIC8vIExpbmsgdG8gcGxheWVyIGRhdGEgc3RydWN0CiAgICAKICAgIGludCBtYXh5KCkgY29uc3QgeyByZXR1cm4gYm9hcmQuc2l6ZSgpOyB9CiAgICBpbnQgbWF4eCgpIGNvbnN0IHsgcmV0dXJuIGJvYXJkLmVtcHR5KCkgPyAwIDogYm9hcmRbMF0uc2l6ZSgpOyB9Cn07CgppbnQgbWFpbigpCnsKICAgIGdhbWVpbmZvIGdhbWU7CgogICAgZ2FtZS5ib2FyZCA9IHZlY3RvcjxzdHJpbmc+KCBiZWdpbihsZXZlbDEpLCBlbmQobGV2ZWwxKSApOwogICAgCiAgICBjb3V0IDw8ICJCb2FyZCBpcyAiIDw8IGdhbWUubWF4eCgpIDw8ICJ4IiA8PCBnYW1lLm1heHkoKSA8PCAiOiBcbiI7CiAgICBmb3IgKGF1dG8gJnJvdyA6IGdhbWUuYm9hcmQpCiAgICAJY291dCA8PCByb3cgPDwgIlxuIjsKfQo=