Skip to content

Gambit v16.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Jul 11:47
2e3e53f

Added

  • Added Player.sequences as the collection of sequences available to a player.
  • Implement GameSubgameRep (C++) and Subgame (Python), a first-class object representing a subgame. (#585)
  • Games can be materialised directly from OpenSpiel games if pyspiel is installed. (#917)
  • Magnify events are now supported in GUI for zooming in/out on trees.

Fixed

  • Corrected resizing of row and column index labels in strategic form so pivoting works correctly. (#844)
  • Corrected incorrect output of strategic game tables to .nfg files if strategies have previously been
    deleted in the game (#875)
  • Fix incorrect row index checking in swapping rows of a rectangular array (leading to errors in
    for example simpdiv_solve) (#868)
  • In GUI, typing a payoff with a trailing slash is now interpreted as a whole number
    (previously this led to a validation error dialog)
  • Improved initial zoom and centering of display of game trees on initial load, and focusing behavior
    on currently-selected node or jumping to the root. Also adjusted the initial size of the
    game window to a more comfortable size. (#569)
  • In the GUI, tab-traversal on tables (such as the strategic form payoff table) now works
    as expected (TAB moves one cell to the right, wrapping if appropriate; SHIFT-TAB moves
    to the left, wrapping if appropriate).
  • Max regret is calculated correctly for strategy and behavior profiles on games with zero player
    strategies or actions (is defined to be 0 trivially) (#904)
  • Corrected calculation of total number of actions for a player in pygambit (#938)
  • Corrected a regression in action graph games that left the internal data structure not fully initialised,
    leading to segmentation faults.
  • Corrected handling of malformed AGG/BAGG files: files with an invalid or degenerate header
    (for example a wrong file type, or a header declaring zero players) are now rejected with a
    ValueError instead of causing a segmentation fault while constructing the game.

Changed

  • Added a new welcome/landing window on launching the GUI without a game. This has the effect of
    avoiding creating a window with a trivial extensive game which the user then has to dismiss if
    they do not require it. (#80)
  • Clarified handling of .efg/.nfg/.gbt file types in graphical interface and refined warnings about
    unsaved work. (#12)
  • Created and documented right-click context menu in the normal form pivot table, which makes the
    mechanism for deleting a strategy more clear. (#855)
  • Payoff editing in extensive games in the graphical interface is now done via a context popup window
    rather than text controls drawn (not always well!) over the game tree display. (#947)
  • In pygambit, indexing game object collections by integer position has been removed. (#942)
  • Validity of game object labels is enforced (printable ASCII and spaces only, no leading/trailing or
    double spaces); invalid labels raise ValueError in pygambit. (#944)
  • Nonempty labels are now required for all players, outcomes, actions, and strategies.
    Labels must be unique within the game for players and outcomes, within the player for
    strategies, and within the information set for actions.
  • Refined and clarified the graphical interface's handling (and persisting) of "workspaces", and
    improved warning messages on closing windows for games or workspaces with unsaved changes.
  • In pygambit, the .outcome, .player, and .infoset attributes are now treated as predicates
    that are evaluated on-demand, to align with the behaviour of collections. (#946)

Removed

  • Built-in plotting of logit QRE for strategic games has been removed in the GUI (#809)