BOARD
static struct BOARD *
struct BOARD *now; /* current position */
binsert(struct move *mm, struct BOARD *new)
struct BOARD *qp = checkq; /* queue pointer */
bcomp(struct BOARD *a, struct BOARD *b)
mvcheck(struct move *mm, struct BOARD *incumbent, struct BOARD *candidate)
makefree(struct BOARD *dead)
static struct BOARD *
struct BOARD *new;
new = (struct BOARD *) calloc(1, sizeof(struct BOARD));
struct BOARD *now = bsave(mm);
struct BOARD *next; /* next move */
boardcopy(struct move *mm, struct BOARD *s)
struct BOARD *b_next; /* forward queue pointer */
static struct BOARD *freeq = 0;
static struct BOARD *checkq = 0;
static int bcomp(struct BOARD *, struct BOARD *);
static struct BOARD *bsave(struct move *);
static void binsert(struct move *, struct BOARD *);
static void boardcopy(struct move *, struct BOARD *);
static void makefree(struct BOARD *);
static void mvcheck(struct move *, struct BOARD *, struct BOARD *);
static struct BOARD *nextfree(void);
size_t ALGOR::count_closure(size_t& y, size_t& x, int& dir, BOARD& b)
size_t ALGOR::find_max_closure(size_t& y, size_t& x, int& dir, const BOARD& b)
BOARD nb(b);
int ALGOR::try_good_turn(BOX& box, size_t y, size_t x, int& dir, BOARD& b)
int ALGOR::find_good_turn(size_t& y, size_t& x, int& dir, const BOARD& b)
BOARD nb(b);
int ALGOR::try_bad_turn(BOX& box, size_t& y, size_t& x, int& dir, BOARD& b,
int ALGOR::find_bad_turn(size_t& y, size_t& x, int& dir, BOARD& b, int last)
size_t ALGOR::find_min_closure1(size_t& y, size_t& x, int& dir, const BOARD& b,
BOARD nb(b);
size_t ALGOR::find_min_closure(size_t& y, size_t& x, int& dir, const BOARD& b)
void ALGOR::play(const BOARD& b, size_t& y, size_t& x, int& dir)
int ALGOR::find_closure(size_t& y, size_t& x, int& dir, BOARD& b)
class BOARD;
void play(const BOARD& b, size_t& y, size_t& x, int& dir);
int find_closure(size_t& y, size_t& x, int& dir, BOARD& b);
size_t find_max_closure(size_t& y, size_t& x, int& dir, const BOARD& b);
size_t find_min_closure1(size_t& y, size_t& x, int& dir, const BOARD& b,
size_t find_min_closure(size_t& y, size_t& x, int& dir, const BOARD& b);
int find_good_turn(size_t& y, size_t& x, int& dir, const BOARD& b);
int find_bad_turn(size_t& y, size_t& x, int& dir, BOARD& b, int last);
int try_bad_turn(BOX& box, size_t& y, size_t& x, int& dir, BOARD& b,
int try_good_turn(BOX& box, size_t y, size_t x, int& dir, BOARD& b);
size_t count_closure(size_t& y, size_t& x, int& dir, BOARD& b);
int BOARD::domove(size_t y, size_t x, int dir, char c)
int BOARD::full(void) const
BOX box(y, x, const_cast<BOARD&>(*this));
int BOARD::bounds(size_t y, size_t x) const
void BOARD::paint(void) const
BOX box(y, x, const_cast<BOARD&>(*this));
void BOARD::clean(void) const
void BOARD::setpos(size_t y, size_t x) const
int BOARD::getmove(void) const
void BOARD::bell(void) const
void BOARD::score(size_t i, const PLAYER& p)
void BOARD::games(size_t i, const PLAYER& p)
void BOARD::total(size_t i, const PLAYER& p)
void BOARD::ties(const PLAYER& p)
void BOARD::abort(const char* s, ...) const
BOARD::BOARD(size_t y, size_t x, GAMESCREEN* scrn) :
BOARD::BOARD(const BOARD& b) :
BOARD::~BOARD()
void BOARD::init(void)
class BOARD {
BOARD(size_t y, size_t x, GAMESCREEN* scrn);// For the main screen
BOARD(const BOARD& b); // For scratch screens
~BOARD();
BOX::BOX(size_t py, size_t px, BOARD& b) :
class BOARD;
BOX(size_t py, size_t px, BOARD& b);
BOARD& _b; // The board we refer to
void HUMAN::play(const BOARD& b, size_t& y, size_t& x, int& dir)
class BOARD;
void play(const BOARD& b, size_t& y, size_t& x, int& dir);
BOARD b(ny, nx, sc);
static void play(BOARD& b, PLAYER* p[2])
int PLAYER::domove(BOARD& b)
class BOARD;
virtual void play(const BOARD& b, size_t& y, size_t& x, int& dir) = 0;
int domove(BOARD& b);