Package edu.wisc.game.sql

## Class GameGenerator

- java.lang.Object
- - edu.wisc.game.sql.GameGenerator

- Direct Known Subclasses:
    `PredefinedBoardGameGenerator`, `RandomGameGenerator`, `RandomImageGameGenerator`, `TrivialGameGenerator`

      public abstract class GameGenerator
      extends Object

  This class generates random games (with the same rule set and randomly created initial boards) based on the provided parameter range specifications

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `advance​(int n)` | Advances the counter.
    `RuleSet` | `getRules()` |
    `static GameGenerator` | `mkGameGenerator​(ParaSet para)` | Creates a GameGenerator based on a parameter set.
    `abstract Game` | `nextGame()` | Generates the next game to play

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getRules

          public RuleSet getRules()

    - #### nextGame

          public abstract Game nextGame()

      Generates the next game to play

    - #### advance

          public void advance​(int n)

      Advances the counter. This can be used to resume an interrupted series, so that e.g. a predefined board from the correct position in the list would be used next.
      Parameters:
        `n` - advance the counter as if n games have been created

    - #### mkGameGenerator

          public static GameGenerator mkGameGenerator​(ParaSet para)
                                               throws IOException,
                                                      RuleParseException,
                                                      IllegalInputException,
                                                      ReflectiveOperationException

      Creates a GameGenerator based on a parameter set. Depending on which parameters are set, a PredefinedBoardGameGenerator or a RandomGameGenerator may be returned.
      Parameters:
        `para` - The parameter set for which we will create a suitable GameGenerator
      Throws:
        `IOException`
        `RuleParseException`
        `IllegalInputException`
        `ReflectiveOperationException`