anchor.diff:                (make-instance 'territory
                                :name name
                                :extra-armies extra-armies))))
  -    territories))
  +    (make-instance 'game :territories territories)))
   
   (defmethod read-map ((path pathname))
     (with-open-file (file path) (read-map file)))
  
positive.code:         path
          (format nil "~a.map" path)))))
  
  (defun move-armies (origin destination amount)
    (unless (> amount 0)
      (error "No se pueden mover 0 o menos ejércitos"))
    (unless (> (armies origin) amount)
      (error "No hay suficientes ejércitos"))
    (decf (armies origin) amount)
    (incf (armies destination) amount))
  
  (defun place-armies (territory amount)
    (unless (> amount 0)
      (error "No se pueden poner 0 o menos ejércitos"))
    (incf (armies territory) amount))
  
  (defun attack (origin destination)
    (symbol-macrolet ((attackers (armies origin))
                      (defenders (armies destination)))
      (unless (> attackers 2)
        (error "No se puede atacar teniendo 2 o menos ejércitos"))
      (when (equal (owner destination) (owner origin))
        (error "Un jugador no se puede atacar a si mismo"))
      (let ((decrement (min defenders (- attackers 2))))
        (decf attackers decrement)
        (decf defenders decrement)
        (when (= defenders 0)
          (move-armies origin destination 1)
          (setf (owner destination) (owner origin))))
      (owner destination)))
  
  
negative.code:      :initform (error "Debe ingresar el nombre del jugador")
       :reader name)))
  
  (defclass game ()
    ((turn-player
       :accessor turn-player)
     (territories
       :initarg :territories
       :accessor territories
       :initform (error "Debe especificar los territorios"))))
  
  (defgeneric read-map (file))
  
  (defmethod read-map ((file stream))
  