User:Gregory Gauthier/JAGUARS++ design

From QBWiki
< User:Gregory Gauthier
Revision as of 15:19, 16 March 2014 by Gregory Gauthier (talk | contribs) (start)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

These are design notes for JAGUARS++, a proposed rewrite of JAGUARS in C++. The Qt framework will still be used, but the overall design of the program will change.

The main class will be a GameManager which runs a game by handling commands. It sends responses to the moderator console. It also emits messages that may be of interest to other listeners as well. For example, it may notify of a score change in case a scoreboard window wants to be aware of it. The other key difference from JAGUARS is that the GameManager will store a stack of commands, so that it can intelligently roll back the game in case of moderator error or protest. Derived classes can be tailored to specific formats and kinds of formats; as an example, one inheritance structure might be the following:

  • GameManager
    • TUBonusGameManager
      • ACFGameManager
      • NAQTGameManager
      • IHSAGameManager
    • TossupGameManager
      • HistoryBeeGameManager
      • NTAEGameManager
    • HistoryBowlGameManager