anchor.diff:  - end-of-game constraints
   ||#
   
  -;;;; solitaire.lisp                   --                     --          ;;;;
  +;;;; THE END ;;;;
  +
  
positive.code:   (setf (current-state self)
          (make-instance 'solitaire-state :state (state (game self))))
    (register-state self (current-state self))
    self);;initialize-instance
  
  
  (defmethod play-move ((self solitaire-player) move)
    (let ((current-state (current-state self)))
      (push move (played-moves current-state))
      (if (eq :deal (car move))
        (deal (game self))
        (move (game self) (first move) (second move)))
      (let* ((new-game-state (state (game self)))
             (new-state (gethash new-game-state (states self))))
        (unless new-state
          (setf new-state (make-instance 'solitaire-state
                            :state new-game-state
                            :game (game self)))
          (register-state self new-state))
        (push (cons move new-state) (consequent-states current-state))
        (setf (current-state self) new-state))));;play-move
  
  
  
  
negative.code: ;;;;AUTHORS
  ;;;;    <PJB> Pascal Bourguignon <pjb@informatimago.com>
  ;;;;MODIFICATIONS
  ;;;;    2012-12-06 <PJB> Corrected a few bugs.
  ;;;;    2004-03-19 <PJB> Added a player.
  ;;;;    2004-01-08 <PJB> Created.
  ;;;;BUGS
  