/* generated by dia/codegen.py */
/*2x2 tile*/
class tile : base 
{
public:
	tile (base* back);
	char getAt (int col,
	            int row);
	void move (int col,
	           int row);
	void rotate ();
	void nextPos ();
	bool valid ();
	bool fail ();
	void reset ();
private:
	base* back;
	char[4] _arr;
	int _col;
	int _row;
};

/*4x4 map*/
class map : base 
{
public:
	char getAt (int col,
	            int row);
private:
	base _back*;
	int[16] _arr;
};

/*base virtual class*/
class base 
{
public:
	int getAt (int col,
	           int row);
	base* back ();
	void nextPos ();
	bool valid ();
	bool fail ();
	void reset ();
private:
	base _back*;
};

