#ifndef _STATE_H_
#define _STATE_H_

#include "settings.h"
#include <SDL/SDL.h>
#include <stdint.h>
#include "image.h"


/**
 * Describes the current state of a go board.
 */
class State
{

	public:

		/**
		 * Standard constructor
		 */
		State( void ); 
		virtual ~State( void );

		void setSize(int size) { State::size = size; }
		void printState( void );

		static State generateState( SDL_Surface *board, Settings settings);

		/*
		 * Get the image point corresponding to board position (i, j) using
		 * settings s.
		 */
		static point positionPoint(int i, int j, Settings s);

	private:

		/**
		 * The size of the board, e.g. 19x19, 13x13 etc.
		 */
		static int size;

		/**
		 * array describing the board situation
		 */
		type *board;

};

#endif /* ifndef _STATE_H_ */