biquadris / shapes.h
shapes.h
Raw
/*
    Shapes class module
    
	stores information of the shape layouts (and their binaries), and height
	of the shape with basic functionality
*/

#ifndef _SHAPES_H_
#define _SHAPES_H_

#include <vector>
#include <map>
#include <utility>

class Shapes {
	static std::map<char,std::map<int,std::vector<std::pair<int,int>>>> layouts;
	static std::map<char,std::vector<std::vector<bool>>> binaries;
	static std::map<char,std::map<int,int>> heights;
	char type;
	public:
		Shapes(char type);
		char getType() const noexcept;
		std::vector<std::pair<int,int>> getLayout(int version);
		std::vector<std::vector<bool>> &getBinary();
		int getHeight(int version) const;
};

#endif