#include "scr_Move.h"
//#define TILENUM 7
#ifndef SCR_PLAYER_H
class scr_Player{
protected:
 int score,TILENUM;
 unsigned long int* tiles;

public:
 scr_Player(){}
 scr_Player(int numtiles);
 ~scr_Player(){
  delete [] tiles;
 }

 virtual int GetData()=0;

 virtual int Update(scr_Move* move, int score)=0;

 virtual int InformFinalScores(int* scores)=0;

 virtual int InformInitialStats(int numplayers)=0;

 unsigned long int GetTile(char index){
  if(tiles) return tiles[index];
  else return(0);
 }
 
 void RemoveTile(char index){
  tiles[index]=0;
 }

 void AddScore(int increase){
  score+=increase;
 }

 int GetScore(){
  return score;
 }

 int NumTiles(){
 char a,b=0;
  for(a=0;a<TILENUM;a++)
   if(tiles[a]) b++;
  return b;
 }

 void SetTile(char index, unsigned long int value){
  tiles[index]=value;
 }
};

class scr_HPlayer : public scr_Player{
public:
 scr_HPlayer(int numtiles);
 int GetData();
 int Update(scr_Move* move, int score);
 int InformFinalScores(int* scores);
 int InformInitialStats(int numplayers);
};
#endif