//notes--blank in character form has 64 added to original value

//TILE TERMINOLOGY

//BITFIELD TILE: This tile enumerates all the possible identities the tile may take. So far, up to 32 identities are acceptable

//INDEX TILE: This refers to the type of tile something is; from this, we may get point value; 64 represents tiles of multiple identity

//ASCII TILE: The ascii representation of a tile. This system works as follows:
//lower case letters represent tiles that only have one identity
//capital letters represent a multiple identity tile that has been set to a certain identity
//'*' is the unset multiple identity tile
//NOTE: NEXT REVISION WILL FIND BETTER WAY TO HANDLE MULTIPLE IDENTITY TILES, so we can have  tiles that can be only vowels, or certain consonants etc.

class scr_Bag{
private:
 unsigned long int tiles[256],tflag[32];
 int value[256],totalnum,types;
public:
 scr_Bag(char* filename);

 unsigned long int  //returns a bitfield tile
   GetTile();

 int  //returns the point value of an index letter
   Value(char req)

 int  //takes a bitfield tile and finds its value
   TileValue(unsigned long int req)

 //returns the index value of the tile (bitfield)
 //if the tile can represent more than 1 letter,
 //it will return 64

 char
   Translate(unsigned long int tile)

 void
   PutTile(unsigned long int input);

 int  //returns number of tiles in bag
   HowMany();

 char  //converts a bitfield tile to ASCII character representation
   TileToASCII(unsigned long int input);

 char  //converts index tile to ASCII
   IndexToASCII(char input);

 char //converts ASCII to index character
   ASCIIToIndex(char input);

 unsigned long int //converts ASCII to bitfield tile
   ASCIIToTile(char input);

};
