anchor.diff:  te liczby jako wierzchołki grafu, to musimy również mieć sposób na oznaczenie krawędzi - możemy
   to osiągnąć za pomocą trójwymiarowej tablicy informującej o tym, czy wierzchołek ma krawędzie 
   w dół albo w prawo. Dwa pierwsze wymiary to wymiary oryginalnej tablicy, trzeci wymiar oznacza
  -dwa bity; pierwszy oznacza krawędź w dół, drugi - w prawo. |#
  -(defun make-maze (y-size x-size &key random-array starting-point)
  -  (let ((data (or random-array (make-randomized-array y-size x-size)))
  -        (edges (make-array (list y-size x-size 2) :element-type 'bit))
  -        (starting-point (or starting-point (list (random y-size) (random x-size)))))
  -    (generate-maze data edges starting-point)))
  -
  -#| Pesymistycznie rzecz biorąc, w kolejce może znaleźć się 4/5 wszystkich wierzchołków, każdy w
  +dwa bity; pierwszy oznacza krawędź w dół, drugi - w prawo. 
  +
  +Pesymistycznie rzecz biorąc, w kolejce może znaleźć się 4/5 wszystkich wierzchołków, każdy w
   maksymalnie czterech duplikatach - stąd rozmiar sterty. Nie usuwam duplikatów, gdyż sprawdzanie
   całej sterty za każdym razem byłoby O(n) - lepiej sprawdzać to za każdym razem przy zdejmowaniu
   wierzchołka ze sterty.
  
positive.code: 
  #| Nie będzie tu skomplikowane - piszemy funkcję, która tworzy tablicę, po czym
  wypełnia ją liczbami pseudolosowymi.
  Wyróżniam to jako osobny odcinek, bo jest tu pole do rozwoju, gdyby trzeba byłouwzględnić 
  nieco bardziej regularne dane do generowania labiryntów. Jakieś lokalne zgrupowania, 
  wzniesienia, detale geograficzne - można to zaimplementować właśnie w tym miejscu.|#
  (defun make-randomized-array (y-size x-size &optional (maximum 255))
    (let ((array (make-array (list y-size x-size) :element-type 'integer)))
      (dotimes (y y-size)
  
negative.code: Najpierw inicjalizujemy struktury danych - oznaczamy punkt startowy jako odwiedzony i karmimy
  nim kolejkę. Sprawdzamy i tworzymy pierwszą krawędź, od której zacznie się budowa labiryntu.
  Potem - wchodzimy w pętlę główną.|#
  (defun make-maze (y-size x-size &key random-array starting-point)
    (let* ((data (or random-array (make-randomized-array y-size x-size)))
           (edges (make-array (list y-size x-size 2) :element-type 'bit))
           (starting-point (or starting-point (list (random y-size) (random x-size))))
           (heap (make-heap (ceiling (array-total-size data) 5/16))))
      (heap-push heap starting-point 0)
      (if (valid-vertex-p (get-neighbor starting-point :down) edges)
          (make-edge edges starting-point (get-neighbor starting-point :down))
  