anchor.diff:     (extra-armies
        (error "Debe ingresar los ejércitos adicionales del territorio")
        ir)
  -   (owner nil a)
  -   (armies nil a)
  -   (movable-armies nil a)))
  +   (%owner nil a :reader owner)
  +   (%armies nil a :reader armies)
  +   (%movable-armies nil a :reader movable-armies)))
   
   (defclass* game-map ()
     ((territories (error "Debe especificar los territorios") ir)
  
positive.code: 
  (defgeneric head-player (game)
    (:method ((game game))
     (car (players-round game))))
  
  (defgeneric turn-player (game)
    (:method ((game game))
     (car (slot-value game 'turn-player))))
  
  (defgeneric pass-head (game)
    (:method ((game game))
     (pop (players-round game))
     (head-player game)))
  
  (defgeneric rotate-turn (game)
    (:method ((game game))
     (pop (slot-value game 'turn-player))
     (eq (turn-player game) (head-player game))))
  
  (defgeneric pass-turn (game)
  
negative.code:        (error "Los territorios deben ser divisibles entre los jugadores"))
       (loop
         with territories = (shuffle (territory-keys game))
         for player in (%players-round game)
         for territory in territories do
         (setf (%owner (territory game territory)) player)
         (setf (%armies (territory game territory)) 1)))))
  
  (defgeneric claim (game territory)
    (:method ((game game) territory-key)
     (let ((territory (territory game territory-key)))
       (when (owner territory)
         (error "El territorio ya tiene dueño"))
       (setf (%owner territory) (turn-player game))
       (setf (%armies territory) 1))))
  
  (defgeneric reset-movable-armies (game)
    (:method ((game game))
     (loop for territory being the hash-values in (territories game) do
           (setf (%movable-armies territory) (armies territory)))))
  
  (defgeneric move-armies (game from to amount)
    (:method ((game game) origin-key destination-key amount)
  