typedef struct {
	int type; 
	int	size;
	int size2; /* 今は未設定 タテヨコが違う時設定予定 */
} BAN_TYPE;

/* BAN_TYPEのTYPEの中身　*/
#define NORMAL 0
#define DONUTS 1 /* 辺や隅がないモデル*/

#define MAX_BANSIZE 19
#define MAX_BANSIZE2 (MAX_BANSIZE+1)*(MAX_BANSIZE+2)+1

#define LEFT (-1)
#define RIGHT (+1)

struct gcellstruct{
	struct gcellstruct *next;
	struct bancellstruct	*c_ptr;
	struct damecellstruct	*dame_ptr; /* グル−プに接している盤の位置  */
	int		territory_number;		/* グル−プの領域の数 */
	int		dame_number;			/* ダメの数 ( ブランク のみ )*/
	char	iro;					/* グル−プの色 */
	char	territory_iro;
	char	henkan_territory_iro;
} ;
typedef struct gcellstruct GCELL;

struct bancellstruct{
	struct bancellstruct *next;
	struct gcellstruct	*g_ptr;
/*  ban で代替できるから持つ必要がない */
/*
	char iro;
 */
} ;
typedef struct bancellstruct BANCELL;

struct damecellstruct{
	struct damecellstruct *next;
	int	ichi;
} ;
typedef struct damecellstruct DAMECELL;

extern int banx_init(char ban[]);
extern int banx_uchiage(char ban[], int ichi, int *w_uchiage_number);
extern int banx_handy_set(char ban[], int ichi);
extern int banx_judge(char current_ban[]);
extern int banx_disp();
extern int banx_territory(int *black_t_number, int *white_t_number);
extern int banx_put(int ichi);


extern int gcell_init();
extern GCELL *gcell_get();
extern int gcell_free(GCELL *p);
extern int gcell_end();

extern int damecell_init();
extern DAMECELL *damecell_get();
extern int damecell_free(DAMECELL *p);
extern int damecell_end();
