anchor.diff:      (push (pop a) b)
       (format t "Your move was illegal. ~%"))
   
  -; TODO: can we set an alias to those (gethash :B stacks) things for easier access?
  +; wrapper function to ease the movement (without using hashes)
  +; and to print the game configuration
  +(defun move ()
  +  ; TODO
  +  )
  +
   ; function to start them all. main?
   (defun start ()
     (let ((x))
  
positive.code: ;; George 'papanikge' Papanikolaou 2014
  ;; Tower of Hanoi game description and functions for CEID
  ;;
  
  ; Format identifiers:
  ; ~A: string
  ; ~D: number
  ; ~%: new-line
  
  ; We are going to keep the game-configuration in the global var stacks.
  ; Using a hash-table so we can have names for each rod/peg.
  
negative.code: ; asks and saves the game-conf from user input
  (defun get-conf-keyboard ()
    (format t "Rods: 3 (A, B, C)~%Discs: 5 (sizes: 1,2,3,4,5)~%")
    (dotimes (i 5)
      (format t "Disc: ~D - Please type the corresponding key that you want it placed.~%" (+ i 1))
      (let ((r))
        (setf r (read))
        (cond
          ((string-equal "a" r) (push i (gethash :A stacks)))
          ((string-equal "b" r) (push i (gethash :B stacks)))
          ((string-equal "c" r) (push i (gethash :C stacks)))
          (t (die)))))
    ; test lists, so they following the rules. Smaller on top of bigger.
    (if (not (is-sorted (gethash :A stacks))) (die))
    (if (not (is-sorted (gethash :B stacks))) (die))
  