next up previous contents
Next: GoString : public Up: BoardManager Previous: PointCollectionIterator

LowBoard

At the moment this has a single instance

static LowBoard * LowBoard::the();

The LowBoard is driven by the methods

LowBoard::move(Point &pt);
LowBoard::takeBack(Point &pt);

Legal move for the current state

LowBoard::legalMove(const Point &pt) const;

Q: Will LowBoard::move() do illegal moves ?

A: Yes.

The board state is accessible via the method

GoString * LowBoard::stringAt(Point &pt);

The LowBoard.h file is,

class LowBoard
{
public:
    LowBoard(Coord width);
    virtual               ~LowBoard();
    
    // Main selector methods
    unsigned short        turn() const;
    Side                  toMove() const;
    
    const GoString  *     stringAt(const Point &p) const;
    
    // Check for occupied point, off board, suicide (if applicable), Ko.
    BOOL                  legalMove(const Point &p) const;

    // Is the point an illegal Ko move?
    BOOL                  isIllegalKo(const Point &pt) const;

    // Required by the GoGui
    int                   width() const; 
    Side                  stoneColorAt(Coord x,Coord y) const;


    BoardController *     boardController() const;
    
    // For Testing:
    BOOL                  isValid() const;
    void                  rebuild();
    
    // Public modifier methods.
    // Pass moves: pass in "Point::passPoint()"
    
    void                  move(const Point &pt);

    // Unmove == unpass. takeBack the last move.
    void                  takeBack();
    
    // [snip private data]
};



P J Leonard
Tue Oct 1 15:25:19 BST 1996