#ifndef HEXAGON_H
#define HEXAGON_H

//using uint = unsigned int;
#include "image.h"

enum direction
{
  top_left,
  top_right,
  bottom_right,
  bottom_left,
  right,
  left
};

class Hexagon
{
public:
  // CONSTRUCTOR
  Hexagon(){};
  Hexagon(int x, int y, int radius) : x(x), y(y), radius(radius), visited(false)
  {
    for(int i = 0; i < NUMBER_OF_WALLS; ++i)
    {
      walls[i] = true;
    }
  };

  // METHODS
  void setFields(int x, int y, int radius);
  bool isVisited() const;
  bool setVisited(bool visited);
  void display(SDL_Surface *image) const;
  void removeWall(direction wichone);
  void getXY(int &x, int &y) const;
private:
  // CONST FIELDS
  static const int NUMBER_OF_WALLS = 6;
  // FIELDS
  int x;
  int y;
  bool visited;
  int radius;
  bool walls[6];
};

#endif
