// This is -*- c++ -*- code

#ifndef __MOVE_GENERATOR_H__
#define __MOVE_GENERATOR_H__

// $Id: move_generator.h,v 1.2 1995/12/02 05:58:54 hartmans Exp $

#include "move.h"


class move_generator {

public:
    // Overview: yields moves from a board in response to valid_moves
// Requires:  That the generator is deleted when no longer used and before the board or game is deleted.

virtual ~move_generator();

    virtual bool get (move *&m) = 0;
    // Effects: Returns true and sets m to be a pointer to a move, or
    // returns false and does not change m.
    // Modifies: m, this

};

#endif

    // Requires: m not be used after this destroyed.
