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

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

 unsigned long int GetTile(){
  if(totalnum){
   totalnum--;
   return(tiles[totalnum]);
  }
  else return(0);
 }

 //takes a character and finds its value
 int Value(char req){
  return(value[req]);
 }

 //takes a tile and finds its value
 int TileValue(unsigned long int req){
 char a;
  for(a=0;a<types;a++)
   if(tflag[a]==req) break;
  return(value[a]);
 }

 //returns the character value of the tile (bitfield)
 //if the tile can represent more than 1 letter,
 // it will return 64
 char Translate(unsigned long int tile){
 char a,b=0;
  for(a=0;tile;a++,tile>>=1){
   if(tile&1){
    if(b){
     a=64;
     break;
    }
    b=1;
   }
  }
  return(a);
 }

 void PutTile(unsigned long int input);

 int HowMany(){
  return(totalnum);
 }
 
};
