1. 30 Dec, 2016 1 commit
  2. 26 Dec, 2016 1 commit
  3. 24 Dec, 2016 1 commit
  4. 23 Dec, 2016 1 commit
    • Terence Martin's avatar
      Enhance state machine · 86cba188
      Terence Martin authored
      In order to handle some upcoming timing changes, make the state
      machine aware of how long it has been in the current state so that we
      can check it, knowing when to transition to another state or perform
      an event at a set interval.
      86cba188
  5. 20 Dec, 2016 1 commit
    • Terence Martin's avatar
      Remove superflous state · 983a442f
      Terence Martin authored
      As implemented we don't need a state for the AI to select its move;
      this happens as a part of the state in which it is taking its turn.
      983a442f
  6. 19 Dec, 2016 1 commit
    • Terence Martin's avatar
      Include new StateMachine class · 9d91e183
      Terence Martin authored
      This is a first pass and is subject to changes, so we'll see what
      happens.
      
      This is set up so that the machine maintains both a current and a
      previous state (i.e. it has a state stack size of 1), allowing us to
      not only track our current state but also make rudimentary decisions
      about where to go next.
      
      There is a change listener interface that allows the machine to
      directly notify interested parties when the state changes so that they
      can take the appropriate action.
      
      This code currently has a proviso (in comments only) that warns again
      changing the state of the machine while inside the change handler, but
      I think as long as there is only ever a single listener this is safe.
      In the case of a multiple listener, notifications to objects that get
      notifed after the current cycle might be undefined.
      9d91e183