~octaspire/crates2

47f32184b134467a39011d0b3ba0f73c121eb355 — octaspire 2 months ago 4cefcb1
Set optimization, trigger GC, clean up a bit

  * Set optimization qualities in Makefile.
  * Use trivial-garbage:gc before changing into next level.
  * Remove some temporary placeholder levels.
4 files changed, 1157 insertions(+), 1233 deletions(-)

M Makefile
M crates2.asd
M src/levels.lisp
M src/main.lisp
M Makefile => Makefile +7 -7
@@ 12,17 12,17 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
LISP  ?= sbcl
EVAL  ?= "--eval"
LOAD  ?= "--load
level ?= 0
LISP    ?= sbcl
EVAL    ?= "--eval"
level   ?= 0

.PHONY: slime clean help test

crates2: Makefile crates2.asd src/*.lisp
	@$(LISP) $(EVAL) '(ql:quickload :crates2)' \
                 $(EVAL) '(asdf:make :crates2)'    \
                 $(EVAL) '(quit)'
	@$(LISP) $(EVAL) "(progn (declaim (optimize (speed 0) (space 0) (safety 3) (debug 3))) \
                                 (ql:quickload :crates2)                                       \
                                 (asdf:make :crates2)                                          \
                                 (quit))"

slime:
	@etc/slime.sh &

M crates2.asd => crates2.asd +1 -1
@@ 13,7 13,7 @@
;; See the License for the specific language governing permissions and
;; limitations under the License.
(asdf:defsystem "crates2"
  :depends-on (:alexandria :unix-opts :parse-float)
  :depends-on (:alexandria :unix-opts :parse-float :trivial-garbage)
  :serial t
  :components ((:module src
                :components

M src/levels.lisp => src/levels.lisp +1148 -1225
@@ 14,1232 14,1155 @@
;; limitations under the License.
(in-package :crates2)

(defparameter *num-levels* 24)
(defparameter *num-levels* 8)

(defun load-level (index)
  (ecase index
    (0 (list (list nil nil nil :east nil nil nil :east)
             (list (make-instance 'exit        :x 6 :y 3 :z 0)
                   (make-instance 'turnstile-e :x 3 :y 3 :z 0)
                   (make-instance 'player      :x 1 :y 3 :z 0))))
    (1 (list (list nil nil nil :west nil nil nil :west)
             (list (make-instance 'exit        :x 1 :y 3 :z 0)
                   (make-instance 'turnstile-w :x 3 :y 3 :z 0)
                   (make-instance 'player      :x 6 :y 3 :z 0))))
    (2  (list (list nil nil nil :north nil nil nil :north)
              (list (make-instance 'exit        :x 3 :y 1 :z 0)
                    (make-instance 'turnstile-n :x 3 :y 3 :z 0)
                    (make-instance 'player      :x 3 :y 6 :z 0))))
    (3  (list (list nil nil nil :south nil nil nil :south)
              (list (make-instance 'exit        :x 3 :y 6 :z 0)
                    (make-instance 'turnstile-s :x 3 :y 3 :z 0)
                    (make-instance 'player      :x 3 :y 1 :z 0))))
    (4 (list (list nil nil nil :east nil nil nil :east)
             (list (make-instance 'exit         :x 6 :y 3 :z 0)
                   (make-instance 'turnstile-e1 :x 3 :y 3 :z 0)
                   (make-instance 'player       :x 1 :y 3 :z 0))))
    (5 (list (list nil nil nil :west nil nil nil :west)
             (list (make-instance 'exit         :x 1 :y 3 :z 0)
                   (make-instance 'turnstile-w1 :x 3 :y 3 :z 0)
                   (make-instance 'player       :x 6 :y 3 :z 0))))
    (6  (list (list nil nil nil :north nil nil nil :north)
              (list (make-instance 'exit         :x 3 :y 1 :z 0)
                    (make-instance 'turnstile-n1 :x 3 :y 3 :z 0)
                    (make-instance 'player       :x 3 :y 6 :z 0))))
    (7  (list (list nil nil nil :south nil nil nil :south)
              (list (make-instance 'exit         :x 3 :y 6 :z 0)
                    (make-instance 'turnstile-s1 :x 3 :y 3 :z 0)
                    (make-instance 'player       :x 3 :y 1 :z 0))))
    (8 (list (list :west nil nil nil nil nil nil nil )
             (list (make-instance 'exit     :x 10 :y 6  :z 0)
                   (make-instance 'slope-en :x 3  :y 6  :z 0)
                   (make-instance 'slope-es :x 3  :y 2  :z 0)
                   (make-instance 'slope-ws :x 14 :y 2  :z 0)
                   (make-instance 'slope-wn :x 14 :y 6  :z 0)
                   (make-instance 'player   :x 8  :y 6 :z 0))))
    (9 (list (list :west nil nil nil nil nil nil nil nil nil nil nil)
             (list (make-instance 'exit :x 1 :y 2 :z 0)
                   ;; (make-instance 'vacuum :x 3 :y 2 :z -1)
                   (make-instance 'player :x 5 :y 2 :z 0))))
    (10 (list (list nil nil nil nil :west nil nil nil nil :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil :west)
              (list (make-instance 'exit        :x 1 :y 3 :z 0)
                    ;; (make-instance 'block-timer :x 4 :y 3 :z 0)
                    (make-instance 'player      :x 8 :y 3 :z 0))))
    (11 (list (list nil nil nil nil :west nil nil nil :east nil nil nil :west nil nil nil :east nil nil nil :west)
              (list (make-instance 'exit          :x 1 :y 3 :z 0)
                    (make-instance 'block-counter :x 3 :y 3 :z 0 :count 2)
                    (make-instance 'player        :x 5 :y 3 :z 0)
                    (make-instance 'block-counter :x 8 :y 3 :z 0))))
    (12 (list (list nil nil nil nil :west nil nil nil nil nil :east nil nil nil nil nil :west nil nil nil nil nil nil nil :east nil nil nil nil :south)
              (list (make-instance 'wall         :x 1 :y 3 :z 0)
                    (make-instance 'exit         :x 3 :y 5 :z 0)
                    (make-instance 'pass-counter :x 4 :y 3 :z 1 :count 3)
                    (make-instance 'player       :x 5 :y 3 :z 0)
                    (make-instance 'wall         :x 8 :y 3 :z 0))))
    (13 (list (list nil nil nil nil :west)
              (list (make-instance 'wall         :x 1 :y 3 :z 0)
                    (make-instance 'exit         :x 5 :y 5 :z 0)
                    ;; (make-instance 'pass-timer   :x 4 :y 3 :z 1 :time 10)
                    (make-instance 'player       :x 6 :y 5 :z 0)
                    (make-instance 'wall         :x 8 :y 3 :z 0))))
    (14 (list (list nil nil nil nil :west nil nil nil nil nil nil nil nil :south)
              (list (make-instance 'wall         :x 1 :y 3 :z 0)
                    (make-instance 'exit         :x 6 :y 5 :z 0)
                    (make-instance 'exit         :x 2 :y 5 :z 0)
                    (make-instance 'key          :x 4 :y 3 :z 0)
                    (make-instance 'player       :x 6 :y 3 :z 0))))
    (15 (list (list nil nil nil nil :west nil nil nil nil nil nil nil nil :south nil nil nil nil nil :north nil nil nil nil nil :east nil nil nil nil nil nil :south)
              (list (make-instance 'wall         :x 1 :y 3 :z 0)
                    (make-instance 'wall         :x 2 :y 0 :z 0)
                    (make-instance 'wall         :x 7 :y 1 :z 0)
                    (make-instance 'exit         :x 6 :y 5 :z 0)
                    (make-instance 'player       :x 6 :y 3 :z 0)
                    (make-instance 'pulled       :x 2 :y 5 :z 0 :north t))))
    (16 (list (list nil nil nil nil
                    :east  nil nil nil nil nil nil nil nil
                    :west  nil nil nil nil nil
                    :north nil nil nil nil nil
                    :south nil nil nil nil nil nil nil nil nil nil nil nil
                    :west  nil nil nil nil nil nil nil nil
                    :east  nil nil nil nil nil nil nil
                    :south nil nil nil nil
                    :north)
              (list (make-instance 'pulled       :x 4 :y 3 :z 0 :east t)
                    (make-instance 'pulled       :x 5 :y 9 :z 0 :north t)
                    (make-instance 'player       :x 6 :y 3 :z 0)
                    (make-instance 'pulled       :x 8 :y 3 :z 0 :west t)
                    (make-instance 'pulled       :x 5 :y 2 :z 0 :south t)
                    (make-instance 'pulled       :x 2 :y 8 :z 0 :east t)
                    (make-instance 'pulled       :x 9 :y 8 :z 0 :west t)
                    (make-instance 'pulled       :x 8 :y 9 :z 0 :north t)
                    (make-instance 'exit         :x 8 :y 2 :z 0))))
    (17 (list (list nil nil
                    :east nil nil nil nil nil nil
                    :north nil nil nil nil nil nil nil nil
                    :east nil nil nil
                    :north nil nil
                    :west nil nil
                    :south nil nil nil nil
                    :west nil nil nil nil
                    :north nil nil nil nil nil
                    :east nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil
                    :south nil nil nil
                    :west nil nil nil nil
                    :south nil nil nil nil nil
                    :west nil nil nil nil
                    :south nil nil nil
                    :west nil nil nil nil
                    :south nil nil
                    :west nil nil nil
                    :north nil nil nil
                    :west nil nil
                    :north nil nil
                    :west nil nil
                    :north nil nil nil nil nil nil nil
                    :east nil nil nil nil
                    :south nil nil nil
                    :east nil nil
                    :south nil nil nil nil nil
                    :north nil nil nil nil
                    :east nil nil nil nil
                    :north nil nil
                    :west nil nil nil
                    :north nil nil nil nil nil nil
                    :south nil nil nil nil nil nil nil
                    :west nil nil
                    :north nil nil nil nil
                    :west nil nil nil nil nil ; this takes us out from the heart to (0,5)
                    :east nil
                    :south nil nil
                    :east nil nil
                    :south nil nil nil
                    :east nil nil nil nil nil
                    :north nil nil
                    :east nil nil
                    :north nil nil
                    :east nil nil nil nil nil
                    :east)
              (list (make-instance 'wall        :x 1  :y 0 :z 0)
                    (make-instance 'wall        :x 6  :y 1 :z 0)
                    (make-instance 'key         :x 7  :y 1 :z 0)
                    (make-instance 'slope-ws    :x 10 :y 1 :z 0)
                    (make-instance 'wall        :x 13 :y 2 :z 0)
                    (make-instance 'wall        :x 3  :y 3 :z 0)
                    (make-instance 'wall        :x 4  :y 3 :z 0)
                    (make-instance 'wall        :x 8  :y 3 :z 0)
                    (make-instance 'wall        :x 9  :y 3 :z 0)
                    (make-instance 'wall        :x 2  :y 4 :z 0)
                    (make-instance 'key         :x 4  :y 4 :z 0)
                    (make-instance 'turnstile-e :x 5  :y 4 :z 0)
                    (make-instance 'turnstile-s :x 7  :y 4 :z 0)
                    (make-instance 'key         :x 8  :y 4 :z 0)
                    (make-instance 'wall        :x 10 :y 4 :z 0)
                    (make-instance 'slope-es    :x 0  :y 5 :z 0)
                    (make-instance 'turnstile-w :x 2  :y 5 :z 0)
                    (make-instance 'wall        :x 6  :y 5 :z 0)
                    (make-instance 'turnstile-e :x 10 :y 5 :z 0)
                    (make-instance 'turnstile-e :x 12 :y 5 :z 0)
                    (make-instance 'block-timer :x 14 :y 5 :z 0 :time 18)
                    (make-instance 'wall        :x 2  :y 6 :z 0)
                    (make-instance 'wall        :x 10 :y 6 :z 0)
                    (make-instance 'exit        :x 16 :y 6 :z 0)
                    (make-instance 'wall        :x 2  :y 7 :z 0)
                    (make-instance 'wall        :x 10 :y 7 :z 0)
                    (make-instance 'wall        :x 0  :y 8 :z 0)
                    (make-instance 'wall        :x 3  :y 8 :z 0)
                    (make-instance 'wall        :x 9  :y 8 :z 0)
                    (make-instance 'slope-wn    :x 14 :y 8 :z 0)
                    (make-instance 'wall        :x 4  :y 9 :z 0)
                    (make-instance 'wall        :x 8  :y 9 :z 0)
                    (make-instance 'wall        :x 1  :y 10 :z 0)
                    (make-instance 'wall        :x 5  :y 10 :z 0)
                    (make-instance 'wall        :x 7  :y 10 :z 0)
                    (make-instance 'wall        :x 11 :y 10 :z 0)
                    (make-instance 'turnstile-n :x 6  :y 11 :z 0)
                    (make-instance 'wall        :x 9  :y 12 :z 0)
                    (make-instance 'wall        :x 3  :y 13 :z 0)
                    (make-instance 'wall        :x 7  :y 14 :z 0)
                    (make-instance 'player      :x 0  :y 14 :z 0))))
    (18 (list (list nil nil
                    :west nil nil nil nil nil nil
                    :south nil nil nil nil
                    :east nil nil nil nil
                    :north nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil nil
                    :north nil nil nil
                    :west nil nil
                    :east nil nil nil nil
                    :north nil nil nil nil nil
                    :west nil nil nil nil
                    :south nil nil nil
                    :north nil nil nil nil
                    :west nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil
                    :west nil nil nil nil
                    :south)
              (list (make-instance 'wall          :x 5  :y 0 :z 0)
                    (make-instance 'block-counter :x 7  :y 0 :count 1)
                    (make-instance 'block-counter :x 1  :y 1 :count 1)
                    (make-instance 'block-counter :x 9  :y 1 :count 1)
                    (make-instance 'wall          :x 4  :y 2)
                    (make-instance 'wall          :x 6  :y 2)
                    (make-instance 'block-counter :x 0  :y 3 :count 1)
                    (make-instance 'key           :x 3  :y 3)
                    (make-instance 'wall          :x 4  :y 3)
                    (make-instance 'wall          :x 6  :y 3)
                    (make-instance 'key           :x 7  :y 3)
                    (make-instance 'wall          :x 2  :y 4)
                    (make-instance 'wall          :x 3  :y 4)
                    (make-instance 'wall          :x 4  :y 4)
                    (make-instance 'wall          :x 6  :y 4)
                    (make-instance 'wall          :x 7  :y 4)
                    (make-instance 'wall          :x 8  :y 4)
                    (make-instance 'wall          :x 0  :y 5)
                    (make-instance 'player        :x 5  :y 5)
                    (make-instance 'wall          :x 10 :y 5)
                    (make-instance 'wall          :x 2  :y 6)
                    (make-instance 'wall          :x 3  :y 6)
                    (make-instance 'wall          :x 4  :y 6)
                    (make-instance 'wall          :x 6  :y 6)
                    (make-instance 'wall          :x 7  :y 6)
                    (make-instance 'wall          :x 8  :y 6)
                    (make-instance 'key           :x 3  :y 7)
                    (make-instance 'wall          :x 4  :y 7)
                    (make-instance 'wall          :x 6  :y 7)
                    (make-instance 'key           :x 7  :y 7)
                    (make-instance 'block-counter :x 10 :y 7 :count 1)
                    (make-instance 'wall          :x 4  :y 8)
                    (make-instance 'wall          :x 6  :y 8)
                    (make-instance 'block-counter :x 1  :y 9 :count 1)
                    (make-instance 'block-counter :x 9  :y 9 :count 1)
                    (make-instance 'exit          :x 1  :y 10)
                    (make-instance 'block-counter :x 3  :y 10 :count 1)
                    (make-instance 'wall          :x 5  :y 10))))
    (19 (list (list nil nil
                    :north nil nil nil nil nil nil nil nil nil nil
                    nil nil nil nil nil nil nil nil nil nil
                    nil nil nil nil nil nil nil nil nil nil
                    nil nil nil nil nil nil nil nil nil nil
                    nil nil nil nil nil nil nil nil nil nil
                    nil nil nil nil nil nil nil nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil
                    :south nil nil nil nil nil
                    :north nil nil nil nil nil
                    :east nil nil nil nil nil
                    :south nil nil nil nil nil
                    :west nil nil nil nil nil
                    :south nil nil nil nil nil
                    :west nil nil nil nil nil
                    :north nil nil nil nil nil
                    :west nil nil nil nil nil
                    :north nil nil nil nil nil
                    :west)
              (list (make-instance 'slope-es      :x 6  :y 0 :z 0)
                    (make-instance 'slope-ws      :x 11 :y 0 :z 0)
                    (make-instance 'block-timer   :x 2  :y 2 :z 0 :time 18)
                    (make-instance 'exit          :x 0  :y 3 :z 0)
                    (make-instance 'turnstile-s   :x 3  :y 3 :z 0)
                    (make-instance 'player        :x 6  :y 3 :z 0)
                    (make-instance 'pass-counter  :x 11 :y 3 :z 1 :count 2)
                    (make-instance 'wall          :x 9  :y 4 :z 0)
                    (make-instance 'wall          :x 4  :y 5 :z 0)
                    (make-instance 'wall          :x 1  :y 6 :z 0)
                    (make-instance 'wall          :x 8  :y 6 :z 0)
                    (make-instance 'key           :x 3  :y 7 :z 0)
                    (make-instance 'wall          :x 3  :y 8 :z 0)
                    (make-instance 'slope-en      :x 6  :y 8 :z 0)
                    (make-instance 'slope-wn      :x 11 :y 8 :z 0)
                    (make-instance 'wall          :x 5  :y 9 :z 0))))
    (20 (list (list nil nil
                    :east nil nil nil nil nil
                    :west nil nil
                    :north nil nil
                    :south nil nil
                    :east nil nil nil
                    :north nil nil
                    :east nil nil nil
                    :west nil nil
                    :north nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil
                    :north nil nil nil
                    :east nil nil nil nil nil
                    :west nil nil
                    :north nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil
                    :north nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil nil
                    :east nil nil nil nil
                    :south nil nil nil nil
                    :north nil nil nil nil
                    :east nil nil nil nil
                    :south nil nil nil nil
                    :north nil nil nil nil
                    :east nil nil nil nil
                    :south nil nil nil nil
                    :north nil nil nil nil nil
                    :east nil nil nil nil nil
                    :south nil nil nil nil nil
                    :west nil nil nil nil
                    :south nil
                    :north nil nil nil nil nil
                    :east nil nil nil nil
                    :south nil nil nil
                    :west nil nil nil nil
                    :north nil
                    :west nil nil
                    :south nil
                    :west nil nil
                    :south nil
                    :north nil nil nil
                    :east nil nil nil nil nil nil nil nil
                    :south nil nil nil
                    :west nil nil
                    :north nil
                    :west nil nil
                    :north nil
                    :west nil nil
                    :south nil
                    :west nil nil
                    :north nil
                    :west nil nil
                    :north nil
                    :west nil nil
                    :south nil
                    :west nil nil
                    :south nil
                    :north nil nil nil
                    :east nil nil nil nil nil nil nil nil nil nil nil nil
                    :south nil nil nil
                    :west nil nil
                    :north nil
                    :west nil nil
                    :north nil
                    :west nil nil
                    :south nil nil nil
                    :west nil nil
                    :north nil
                    :west nil nil
                    :south nil
                    :west nil nil
                    :north nil
                    :west)
              (list (make-instance 'wall          :x 0  :y 0 :z 0)
                    (make-instance 'wall          :x 1  :y 0 :z 0)
                    (make-instance 'wall          :x 2  :y 0 :z 0)
                    (make-instance 'wall          :x 3  :y 0 :z 0)
                    (make-instance 'wall          :x 4  :y 0 :z 0)
                    (make-instance 'wall          :x 5  :y 0 :z 0)
                    (make-instance 'wall          :x 6  :y 0 :z 0)
                    (make-instance 'wall          :x 7  :y 0 :z 0)
                    (make-instance 'wall          :x 8  :y 0 :z 0)
                    (make-instance 'wall          :x 9  :y 0 :z 0)
                    (make-instance 'wall          :x 10 :y 0 :z 0)
                    (make-instance 'wall          :x 11 :y 0 :z 0)
                    (make-instance 'wall          :x 12 :y 0 :z 0)
                    (make-instance 'wall          :x 13 :y 0 :z 0)
                    (make-instance 'wall          :x 14 :y 0 :z 0)
                    (make-instance 'wall          :x 15 :y 0 :z 0)
                    (make-instance 'wall          :x 16 :y 0 :z 0)
                    (make-instance 'wall          :x 17 :y 0 :z 0)
                    (make-instance 'wall          :x 18 :y 0 :z 0)
                    (make-instance 'wall          :x 0  :y 1 :z 0)
                    (make-instance 'block-counter :x 6  :y 1 :z 0 :count 1)
                    (make-instance 'block-counter :x 10 :y 1 :z 0 :count 1)
                    (make-instance 'block-counter :x 14 :y 1 :z 0 :count 1)
                    (make-instance 'key           :x 17 :y 1 :z 0)
                    (make-instance 'wall          :x 18 :y 1 :z 0)
                    (make-instance 'wall          :x 0  :y 2 :z 0)
                    (make-instance 'wall          :x 2  :y 2 :z 0)
                    (make-instance 'wall          :x 3  :y 2 :z 0)
                    (make-instance 'wall          :x 6  :y 2 :z 0)
                    (make-instance 'wall          :x 7  :y 2 :z 0)
                    (make-instance 'wall          :x 10 :y 2 :z 0)
                    (make-instance 'wall          :x 11 :y 2 :z 0)
                    (make-instance 'wall          :x 14 :y 2 :z 0)
                    (make-instance 'wall          :x 15 :y 2 :z 0)
                    (make-instance 'wall          :x 16 :y 2 :z 0)
                    (make-instance 'turnstile-s   :x 17 :y 2 :z 0)
                    (make-instance 'wall          :x 18 :y 2 :z 0)
                    (make-instance 'wall          :x 0  :y 3 :z 0)
                    (make-instance 'pulled        :x 5  :y 3 :z 0 :north t :south t)
                    (make-instance 'pulled        :x 9 :y 3 :z 0 :north t :south t)
                    (make-instance 'pulled        :x 13 :y 3 :z 0 :north t :south t)
                    (make-instance 'wall          :x 18 :y 3 :z 0)
                    (make-instance 'wall          :x 0  :y 4 :z 0)
                    (make-instance 'wall          :x 1  :y 4 :z 0)
                    (make-instance 'wall          :x 2  :y 4 :z 0)
                    (make-instance 'wall          :x 3  :y 4 :z 0)
                    (make-instance 'wall          :x 4  :y 4 :z 0)
                    (make-instance 'wall          :x 6  :y 4 :z 0)
                    (make-instance 'wall          :x 7  :y 4 :z 0)
                    (make-instance 'wall          :x 8  :y 4 :z 0)
                    (make-instance 'wall          :x 10 :y 4 :z 0)
                    (make-instance 'wall          :x 11 :y 4 :z 0)
                    (make-instance 'wall          :x 12 :y 4 :z 0)
                    (make-instance 'wall          :x 14 :y 4 :z 0)
                    (make-instance 'wall          :x 15 :y 4 :z 0)
                    (make-instance 'wall          :x 16 :y 4 :z 0)
                    (make-instance 'wall          :x 18 :y 4 :z 0)
                    (make-instance 'exit          :x 0  :y 5 :z 0)
                    (make-instance 'player        :x 2  :y 5 :z 0)
                    (make-instance 'slope-ws      :x 6  :y 5 :z 0)
                    (make-instance 'slope-ws      :x 10 :y 5 :z 0)
                    (make-instance 'slope-ws      :x 14 :y 5 :z 0)
                    (make-instance 'wall          :x 18 :y 5 :z 0)
                    (make-instance 'wall          :x 0  :y 6 :z 0)
                    (make-instance 'wall          :x 4  :y 6 :z 0)
                    (make-instance 'wall          :x 8  :y 6 :z 0)
                    (make-instance 'wall          :x 12 :y 6 :z 0)
                    (make-instance 'wall          :x 18 :y 6 :z 0)
                    (make-instance 'wall          :x 0  :y 7 :z 0)
                    (make-instance 'wall          :x 1  :y 7 :z 0)
                    (make-instance 'wall          :x 2  :y 7 :z 0)
                    (make-instance 'wall          :x 3  :y 7 :z 0)
                    (make-instance 'wall          :x 4  :y 7 :z 0)
                    (make-instance 'pulled        :x 5  :y 7 :z 0 :north t)
                    (make-instance 'wall          :x 6  :y 7 :z 0)
                    (make-instance 'wall          :x 7  :y 7 :z 0)
                    (make-instance 'wall          :x 8  :y 7 :z 0)
                    (make-instance 'pulled        :x 9  :y 7 :z 0 :north t)
                    (make-instance 'wall          :x 10 :y 7 :z 0)
                    (make-instance 'wall          :x 11 :y 7 :z 0)
                    (make-instance 'wall          :x 12 :y 7 :z 0)
                    (make-instance 'pulled        :x 13 :y 7 :z 0 :north t)
                    (make-instance 'wall          :x 14 :y 7 :z 0)
                    (make-instance 'wall          :x 15 :y 7 :z 0)
                    (make-instance 'wall          :x 16 :y 7 :z 0)
                    (make-instance 'wall          :x 17 :y 7 :z 0)
                    (make-instance 'wall          :x 18 :y 7 :z 0))))
    (21 (list (list nil nil
                    :north nil nil nil
                    :west :west :west
                    :north nil nil
                    :south nil nil
                    :west
                    :north nil nil
                    :south nil nil
                    :west :west
                    :north :north
                    :east nil nil nil
                    :north
                    :west nil nil nil
                    :north
                    :east nil
                    :west nil
                    :south :south :south
                    :east :east :east :east
                    :north nil nil
                    :west nil nil
                    :north nil nil
                    :east
                    :south nil
                    :east nil nil nil nil nil
                    :south nil nil
                    :west :west :west
                    :north nil nil
                    :south nil nil
                    :east
                    :north nil nil
                    :south nil nil
                    :east
                    :north nil nil nil
                    :west nil nil nil
                    :east nil nil nil
                    :south nil nil nil
                    :west :west :west :west :west
                    :north nil
                    :west nil
                    :north :north :north
                    :east nil nil
                    :west nil nil
                    :north
                    :east nil nil nil
                    :south nil nil
                    :east nil
                    :south nil
                    :west nil
                    :north nil nil nil
                    :west nil
                    :south :south :south :south :south :south
                    :east nil
                    :north nil
                    :south nil
                    :east :east :east :east :east :east :east :east
                    :north nil
                    :south nil
                    :east
                    :north nil
                    :south nil
                    :east :east
                    :north :north
                    :west nil nil nil
                    :north nil
                    :east nil nil nil
                    :north
                    :west nil
                    :east nil
                    :south :south :south
                    :west :west :west :west
                    :north nil nil
                    :east nil nil
                    :north nil
                    :west nil
                    :south nil
                    :west nil nil nil nil nil nil nil nil nil
                    :south :south
                    :east :east :east :east :east :east :east
                    :north nil nil nil
                    :south nil nil nil
                    :east
                    :north nil nil nil
                    :south nil nil nil
                    :west :west
                    :north nil nil nil
                    :east nil nil nil
                    :south nil
                    :west nil nil nil nil nil nil nil nil
                    :south :south
                    :east :east :east :east :east :east :east :east :east :east :east
                    :north nil
                    :east nil
                    :north :north :north
                    :west nil nil nil
                    :east nil nil nil
                    :north
                    :west nil nil nil
                    :south nil nil nil
                    :west nil
                    :south
                    :east nil
                    :north nil nil nil
                    :east nil nil
                    :north :north :north :north :north
                    :west :west
                    :south nil nil
                    :north nil nil
                    :west
                    :south nil nil
                    :north nil nil
                    :east :east :east
                    :south :south
                    :west nil nil nil
                    :south
                    :west
                    :east nil nil nil
                    :south
                    :west nil
                    :east nil
                    :north :north
                    :west nil
                    :north nil
                    :west :west :west
                    :south nil nil nil
                    :east nil nil
                    :south nil
                    :west
                    :north nil nil
                    :west nil nil nil nil nil
                    :north nil nil nil
                    :east :east :east :east :east :east
                    :south nil nil
                    :north nil nil
                    :east
                    :south :south :south :south
                    :west nil nil
                    :east nil nil
                    :south
                    :west nil nil
                    :east nil nil
                    :south
                    :west nil nil nil
                    :north nil nil nil
                    :west nil nil
                    :north nil nil nil
                    :south nil nil nil
                    :east nil nil nil
                    :north :north :north :north
                    :west nil nil nil nil nil nil nil
                    :north nil nil
                    :east :east :east
                    :south nil nil
                    :north nil nil
                    :west
                    :south nil nil
                    :north nil nil
                    :west :west :west :west
                    :south nil nil
                    :north nil nil
                    :west
                    :south nil nil
                    :north nil nil
                    :west :west
                    :south :south
                    :east nil nil nil
                    :south nil
                    :west nil nil nil
                    :south
                    :east nil nil nil
                    :west nil nil nil
                    :north :north
                    :east nil nil
                    :north nil nil
                    :east :east :east
                    :south nil nil nil
                    :west nil nil
                    :south nil
                    :east nil
                    :north nil
                    :east nil nil nil nil nil nil nil nil nil nil
                    :north :north
                    :west :west :west :west :west :west :west
                    :south nil nil nil
                    :north nil nil nil
                    :west
                    :south nil nil nil
                    :north nil nil nil
                    :east :east
                    :south nil nil nil
                    :west nil nil nil nil
                    :east nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil
                    :north :north
                    :west :west :west :west :west :west :west :west :west :west :west :west
                    :south :south :south :south
                    :east nil nil
                    :west nil nil
                    :south
                    :east nil nil
                    :west nil nil
                    :south
                    :east nil nil nil
                    :north nil nil nil
                    :south nil nil
                    :east nil
                    :west nil nil nil
                    :north :north :north :north :north
                    :east nil
                    :north nil
                    :east :east :east :east :east
                    :south nil nil nil nil
                    :west nil nil
                    :south nil
                    :north nil
                    :east nil nil nil nil nil nil nil nil
                    :north :north
                    :west :west :west :west :west :west
                    :south nil nil nil
                    :west nil nil
                    :east nil nil nil
                    :north nil
                    :east nil nil nil nil
                    :north :north
                    :west :west :west :west :west :west
                    :south nil nil nil nil
                    :west nil nil nil
                    :south nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil nil
                    :north :north
                    :west :west :west :west :west :west :west :west :west :west :west :west
                    :south :south :south :south :south :south :south
                    :east nil nil
                    :north nil nil nil nil
                    :east nil nil
                    :south nil nil
                    :east nil
                    :west nil nil
                    :north nil nil nil
                    :east nil nil
                    :south nil nil
                    :east)
              (list (make-instance 'pulled :x 3  :y 3 :z 0 :north t :south t :east t :west t) ; Top line
                    (make-instance 'pulled :x 4  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 3  :y 4 :z 0 :north t :south t :east t :west t) ; Second line
                    (make-instance 'toggle :x 4  :y 4 :z 0)
                    (make-instance 'pulled :x 5  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'toggle :x 10 :y 4 :z 0)
                    (make-instance 'pulled :x 11 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 3  :y 5 :z 0 :north t :south t :east t :west t) ; Third line
                    (make-instance 'pulled :x 4  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 6 :z 0 :north t :south t :east t :west t) ; Fourth line
                    (make-instance 'pulled :x 5  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 7 :z 0 :north t :south t :east t :west t) ; Fifth line
                    (make-instance 'pulled :x 6  :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'exit   :x 7  :y 7 :z 0)
                    (make-instance 'pulled :x 8  :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 8 :z 0 :north t :south t :east t :west t) ; Mirror fourth line
                    (make-instance 'pulled :x 5  :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 3  :y 9 :z 0 :north t :south t :east t :west t) ; Mirrored third line
                    (make-instance 'pulled :x 4  :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 3  :y 10 :z 0 :north t :south t :east t :west t) ; Mirrored second line
                    (make-instance 'toggle :x 4  :y 10 :z 0)
                    (make-instance 'pulled :x 5  :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'toggle :x 10 :y 10 :z 0)
                    (make-instance 'pulled :x 11 :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 3  :y 11 :z 0 :north t :south t :east t :west t) ; Mirrored top line
                    (make-instance 'pulled :x 4  :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'player :x 7  :y 14 :z 0)
                    (make-instance 'stepper :x 1  :y 1 :z -1) ; Top row
                    (make-instance 'stepper :x 2  :y 1 :z -1)
                    (make-instance 'stepper :x 3  :y 1 :z -1)
                    (make-instance 'stepper :x 4  :y 1 :z -1)
                    (make-instance 'stepper :x 5  :y 1 :z -1)
                    (make-instance 'stepper :x 6  :y 1 :z -1)
                    (make-instance 'stepper :x 7  :y 1 :z -1)
                    (make-instance 'stepper :x 8  :y 1 :z -1)
                    (make-instance 'stepper :x 9  :y 1 :z -1)
                    (make-instance 'stepper :x 10 :y 1 :z -1)
                    (make-instance 'stepper :x 11 :y 1 :z -1)
                    (make-instance 'stepper :x 12 :y 1 :z -1)
                    (make-instance 'stepper :x 13 :y 1 :z -1)
                    (make-instance 'stepper :x 1  :y 2 :z -1) ; West column
                    (make-instance 'stepper :x 1  :y 3 :z -1)
                    (make-instance 'stepper :x 1  :y 4 :z -1)
                    (make-instance 'stepper :x 1  :y 5 :z -1)
                    (make-instance 'stepper :x 1  :y 6 :z -1)
                    (make-instance 'stepper :x 1  :y 7 :z -1)
                    (make-instance 'stepper :x 1  :y 8 :z -1)
                    (make-instance 'stepper :x 1  :y 9 :z -1)
                    (make-instance 'stepper :x 1  :y 10 :z -1)
                    (make-instance 'stepper :x 1  :y 11 :z -1)
                    (make-instance 'stepper :x 1  :y 12 :z -1)
                    (make-instance 'stepper :x 1  :y 13 :z -1) ; Bottom row
                    (make-instance 'stepper :x 2  :y 13 :z -1)
                    (make-instance 'stepper :x 3  :y 13 :z -1)
                    (make-instance 'stepper :x 4  :y 13 :z -1)
                    (make-instance 'stepper :x 5  :y 13 :z -1)
                    (make-instance 'stepper :x 6  :y 13 :z -1)
                    (make-instance 'stepper :x 7  :y 13 :z -1)
                    (make-instance 'stepper :x 8  :y 13 :z -1)
                    (make-instance 'stepper :x 9  :y 13 :z -1)
                    (make-instance 'stepper :x 10 :y 13 :z -1)
                    (make-instance 'stepper :x 11 :y 13 :z -1)
                    (make-instance 'stepper :x 12 :y 13 :z -1)
                    (make-instance 'stepper :x 13 :y 13 :z -1)
                    (make-instance 'stepper :x 13 :y 2 :z -1) ; East column
                    (make-instance 'stepper :x 13  :y 3 :z -1)
                    (make-instance 'stepper :x 13  :y 4 :z -1)
                    (make-instance 'stepper :x 13  :y 5 :z -1)
                    (make-instance 'stepper :x 13  :y 6 :z -1)
                    (make-instance 'stepper :x 13  :y 7 :z -1)
                    (make-instance 'stepper :x 13  :y 8 :z -1)
                    (make-instance 'stepper :x 13  :y 9 :z -1)
                    (make-instance 'stepper :x 13  :y 10 :z -1)
                    (make-instance 'stepper :x 13  :y 11 :z -1)
                    (make-instance 'stepper :x 13  :y 12 :z -1))))
    (22 (list (list nil nil
                    :west nil nil nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil
                    :west nil nil nil nil nil nil nil
                    :east nil nil nil nil nil nil nil
                    :north nil nil nil
                    :west nil nil nil nil nil nil nil
                    :south nil nil nil
                    :west nil nil
                    :north nil nil
                    :west nil
                    :east nil nil nil nil nil nil
                    :north nil nil nil nil
                    :west nil nil nil
                    :south nil nil nil nil nil nil nil
                    :south nil
                    :north nil nil nil nil nil nil nil
                    :east nil nil nil
                    :south nil nil nil nil nil nil nil
                    :west nil nil nil
                    :north nil nil nil nil nil
                    :west nil nil nil
                    :south nil nil nil
                    :west nil nil
                    :north nil nil
                    :west nil nil
                    :east nil nil nil nil nil
                    :north nil nil
                    :west nil nil nil
                    :south nil nil nil
                    :west nil nil
                    :north nil nil
                    :west nil nil nil
                    :east nil nil nil nil
                    :south nil nil
                    :west nil nil
                    :east nil nil nil nil nil nil
                    :south nil nil nil
                    :west nil nil nil
                    :north nil nil nil nil nil
                    :west nil nil nil
                    :south nil nil nil
                    :west nil nil nil
                    :north nil nil
                    :west nil nil nil nil nil nil nil nil)
              (list (make-instance 'pulled :x 2  :y 2 :z 0 :north t :south t :east t :west t) ; Top pulled line
                    (make-instance 'pulled :x 3  :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 2 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 3 :z 0 :north t :south t :east t :west t) ; Second pulled line
                    (make-instance 'pulled :x 3  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 4 :z 0 :north t :south t :east t :west t) ; Third pulled line
                    (make-instance 'pulled :x 3  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 5 :z 0 :north t :south t :east t :west t) ; Fourth pulled line
                    (make-instance 'pulled :x 3  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 6 :z 0 :north t :south t :east t :west t) ; Fifth pulled line (3 empty)
                    (make-instance 'pulled :x 3  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 6 :z 0 :north t :south t :east t :west t)
                    ;; Three empty
                    (make-instance 'pulled :x 11 :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 7 :z 0 :north t :south t :east t :west t) ; Sixth pulled line (5 empty)
                    (make-instance 'pulled :x 3  :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 7 :z 0 :north t :south t :east t :west t)
                    ;; Five empty
                    (make-instance 'pulled :x 12 :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 8 :z 0 :north t :south t :east t :west t) ; Seventh pulled line (7 empty)
                    (make-instance 'pulled :x 3  :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 8 :z 0 :north t :south t :east t :west t)
                    ;; Seven empty
                    (make-instance 'pulled :x 13 :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 9 :z 0 :north t :south t :east t :west t) ; Eight pulled line (7 empty) player's line
                    (make-instance 'pulled :x 3  :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 9 :z 0 :north t :south t :east t :west t)
                    ;; Seven empty
                    (make-instance 'pulled :x 13 :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 10 :z 0 :north t :south t :east t :west t) ; Ninth pulled line (7 empty)
                    (make-instance 'pulled :x 3  :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 10 :z 0 :north t :south t :east t :west t)
                    ;; Seven empty
                    (make-instance 'pulled :x 13 :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 10 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 11 :z 0 :north t :south t :east t :west t) ; Tenth pulled line (5 empty)
                    (make-instance 'pulled :x 3  :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 11 :z 0 :north t :south t :east t :west t)
                    ;; Five empty
                    (make-instance 'pulled :x 12 :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 11 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 12 :z 0 :north t :south t :east t :west t) ; Eleventh pulled line (3 empty)
                    (make-instance 'pulled :x 3  :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 12 :z 0 :north t :south t :east t :west t)
                    ;; Three empty
                    (make-instance 'pulled :x 11 :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 12 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 13 :z 0 :north t :south t :east t :west t) ; Third to last pulled line
                    (make-instance 'pulled :x 3  :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 13 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 14 :z 0 :north t :south t :east t :west t) ; Second to last pulled line
                    (make-instance 'pulled :x 3  :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 14 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 2  :y 15 :z 0 :north t :south t :east t :west t) ; Last pulled line
                    (make-instance 'pulled :x 3  :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 4  :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 5  :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8  :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9  :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10 :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 11 :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 12 :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 13 :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 14 :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 15 :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 16 :y 15 :z 0 :north t :south t :east t :west t)
                    (make-instance 'exit   :x 9  :y 0 :z 0)
                    (make-instance 'exit   :x 0  :y 9 :z 0)
                    (make-instance 'exit   :x 18 :y 9 :z 0)
                    (make-instance 'exit   :x 9  :y 18 :z 0)
                    (make-instance 'player :x 9  :y 9 :z 0))))
    (23 (list (list nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil nil nil nil nil
                    :south nil nil nil nil nil nil
                    :north nil nil nil nil nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil nil
                    :east nil nil nil nil nil
                    :south nil nil nil
                    :west nil nil nil
                    :east nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :west nil nil nil nil nil
                    :east nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :west nil nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil
                    :south nil
                    :north nil nil
                    :west nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil
                    :west nil nil nil nil nil nil nil nil nil
                    :south nil nil nil nil nil nil nil
                    :east nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                    :south nil nil
                    :west nil nil nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil nil nil nil nil nil
                    :south nil nil nil nil nil nil nil
                    :east nil nil nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil nil nil nil nil nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil
                    :south nil nil
                    :north nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil
                    :west nil nil nil nil nil nil nil nil nil
                    :north nil nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil
                    :south nil nil nil
                    :north nil nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil
                    :west nil nil nil nil nil nil nil
                    :north nil nil nil
                    :east nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil
                    :south nil nil nil nil
                    :north nil nil nil nil nil
                    :west nil nil nil nil nil nil nil nil nil nil
                    :north nil nil
                    :east nil nil nil nil nil nil nil
                    :south nil nil nil
                    :east nil nil nil
                    :west nil nil nil nil nil
                    :north nil nil nil
                    :east nil nil nil
                    :south nil nil nil
                    :east nil nil nil nil
                    :south nil nil nil nil nil
                    :west nil nil nil nil)
              (list (make-instance 'wall   :x 0  :y 0 :z 0) ; Top row
                    (make-instance 'wall   :x 1  :y 0 :z 0)
                    (make-instance 'wall   :x 2  :y 0 :z 0)
                    (make-instance 'wall   :x 3  :y 0 :z 0)
                    (make-instance 'wall   :x 4  :y 0 :z 0)
                    (make-instance 'wall   :x 5  :y 0 :z 0)
                    (make-instance 'wall   :x 6  :y 0 :z 0)
                    (make-instance 'wall   :x 7  :y 0 :z 0)
                    (make-instance 'wall   :x 8  :y 0 :z 0)
                    (make-instance 'wall   :x 0  :y 1 :z 0) ; Second row
                    (make-instance 'player :x 1  :y 1 :z 0)
                    (make-instance 'wall   :x 8  :y 1 :z 0)
                    (make-instance 'wall   :x 9  :y 1 :z 0)
                    (make-instance 'wall   :x 10 :y 1 :z 0)
                    (make-instance 'wall   :x 11 :y 1 :z 0)
                    (make-instance 'wall   :x 12 :y 1 :z 0)
                    (make-instance 'wall   :x 13 :y 1 :z 0)
                    (make-instance 'wall   :x 14 :y 1 :z 0)
                    (make-instance 'wall   :x 15 :y 1 :z 0)
                    (make-instance 'wall   :x 0  :y 2 :z 0) ; Third row
                    (make-instance 'wall   :x 15 :y 2 :z 0)
                    (make-instance 'wall   :x 0  :y 3 :z 0) ; Fourth row
                    (make-instance 'pulled :x 14 :y 3 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 15 :y 3 :z 0)
                    (make-instance 'wall   :x 0  :y 4 :z 0) ; Fifth row
                    (make-instance 'wall   :x 3  :y 4 :z 0)
                    (make-instance 'wall   :x 4  :y 4 :z 0)
                    (make-instance 'pulled :x 5  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7  :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 8  :y 4 :z 0)
                    (make-instance 'wall   :x 9  :y 4 :z 0)
                    (make-instance 'pulled :x 10 :y 4 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 11  :y 4 :z 0)
                    (make-instance 'wall   :x 12  :y 4 :z 0)
                    (make-instance 'wall   :x 15  :y 4 :z 0)
                    (make-instance 'wall   :x 0   :y 5 :z 0) ; Sixth row
                    (make-instance 'wall   :x 3   :y 5 :z 0)
                    (make-instance 'wall   :x 4   :y 5 :z 0)
                    (make-instance 'pulled :x 5   :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6   :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 7   :y 5 :z 0)
                    (make-instance 'wall   :x 8   :y 5 :z 0)
                    (make-instance 'wall   :x 9   :y 5 :z 0)
                    (make-instance 'pulled :x 10  :y 5 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 11   :y 5 :z 0)
                    (make-instance 'wall   :x 12   :y 5 :z 0)
                    (make-instance 'wall   :x 15   :y 5 :z 0)
                    (make-instance 'wall   :x 0    :y 6 :z 0) ; Seventh row
                    (make-instance 'wall   :x 3    :y 6 :z 0)
                    (make-instance 'wall   :x 4    :y 6 :z 0)
                    (make-instance 'pulled :x 5    :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6    :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 7    :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 8    :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 9    :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 10   :y 6 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 11   :y 6 :z 0)
                    (make-instance 'wall   :x 12   :y 6 :z 0)
                    (make-instance 'wall   :x 15   :y 6 :z 0)
                    (make-instance 'wall   :x 0    :y 7 :z 0) ; Eight row
                    (make-instance 'wall   :x 3    :y 7 :z 0)
                    (make-instance 'wall   :x 4    :y 7 :z 0)
                    (make-instance 'pulled :x 5    :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6    :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'exit   :x 8    :y 7 :z 0)
                    (make-instance 'pulled :x 10   :y 7 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 11   :y 7 :z 0)
                    (make-instance 'wall   :x 12   :y 7 :z 0)
                    (make-instance 'wall   :x 15   :y 7 :z 0)
                    (make-instance 'wall   :x 0    :y 8 :z 0) ; Ninth row
                    (make-instance 'wall   :x 3    :y 8 :z 0)
                    (make-instance 'wall   :x 4    :y 8 :z 0)
                    (make-instance 'pulled :x 5    :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'pulled :x 6    :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 7    :y 8 :z 0)
                    (make-instance 'wall   :x 8    :y 8 :z 0)
                    (make-instance 'wall   :x 9    :y 8 :z 0)
                    (make-instance 'pulled :x 10   :y 8 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 11   :y 8 :z 0)
                    (make-instance 'wall   :x 12   :y 8 :z 0)
                    (make-instance 'wall   :x 15   :y 8 :z 0)
                    (make-instance 'wall   :x 0    :y 9 :z 0) ; Tenth row
                    (make-instance 'pulled :x 14   :y 9 :z 0 :north t :south t :east t :west t)
                    (make-instance 'wall   :x 15   :y 9 :z 0)
                    (make-instance 'wall   :x 0    :y 10 :z 0) ; Eleventh row
                    (make-instance 'wall   :x 1    :y 10 :z 0)
                    (make-instance 'wall   :x 15   :y 10 :z 0)
                    (make-instance 'wall   :x 1    :y 11 :z 0) ; Last row
                    (make-instance 'wall   :x 2    :y 11 :z 0)
                    (make-instance 'wall   :x 3    :y 11 :z 0)
                    (make-instance 'wall   :x 4    :y 11 :z 0)
                    (make-instance 'wall   :x 5    :y 11 :z 0)
                    (make-instance 'wall   :x 6    :y 11 :z 0)
                    (make-instance 'wall   :x 7    :y 11 :z 0)
                    (make-instance 'wall   :x 8    :y 11 :z 0)
                    (make-instance 'wall   :x 9    :y 11 :z 0)
                    (make-instance 'wall   :x 10   :y 11 :z 0)
                    (make-instance 'wall   :x 11   :y 11 :z 0)
                    (make-instance 'wall   :x 12   :y 11 :z 0)
                    (make-instance 'wall   :x 13   :y 11 :z 0)
                    (make-instance 'wall   :x 14   :y 11 :z 0)
                    (make-instance 'wall   :x 15   :y 11 :z 0))))))
    (0 (list (list nil nil nil nil
                   :east  nil nil nil nil nil nil nil nil
                   :west  nil nil nil nil nil
                   :north nil nil nil nil nil
                   :south nil nil nil nil nil nil nil nil nil nil nil nil
                   :west  nil nil nil nil nil nil nil nil
                   :east  nil nil nil nil nil nil nil
                   :south nil nil nil nil
                   :north)
             (list (make-instance 'pulled       :x 4 :y 3 :z 0 :east t)
                   (make-instance 'pulled       :x 5 :y 9 :z 0 :north t)
                   (make-instance 'player       :x 6 :y 3 :z 0)
                   (make-instance 'pulled       :x 8 :y 3 :z 0 :west t)
                   (make-instance 'pulled       :x 5 :y 2 :z 0 :south t)
                   (make-instance 'pulled       :x 2 :y 8 :z 0 :east t)
                   (make-instance 'pulled       :x 9 :y 8 :z 0 :west t)
                   (make-instance 'pulled       :x 8 :y 9 :z 0 :north t)
                   (make-instance 'exit         :x 8 :y 2 :z 0))))
    (1 (list (list nil nil
                   :east nil nil nil nil nil nil
                   :north nil nil nil nil nil nil nil nil
                   :east nil nil nil
                   :north nil nil
                   :west nil nil
                   :south nil nil nil nil
                   :west nil nil nil nil
                   :north nil nil nil nil nil
                   :east nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil
                   :south nil nil nil
                   :west nil nil nil nil
                   :south nil nil nil nil nil
                   :west nil nil nil nil
                   :south nil nil nil
                   :west nil nil nil nil
                   :south nil nil
                   :west nil nil nil
                   :north nil nil nil
                   :west nil nil
                   :north nil nil
                   :west nil nil
                   :north nil nil nil nil nil nil nil
                   :east nil nil nil nil
                   :south nil nil nil
                   :east nil nil
                   :south nil nil nil nil nil
                   :north nil nil nil nil
                   :east nil nil nil nil
                   :north nil nil
                   :west nil nil nil
                   :north nil nil nil nil nil nil
                   :south nil nil nil nil nil nil nil
                   :west nil nil
                   :north nil nil nil nil
                   :west nil nil nil nil nil ; this takes us out from the heart to (0,5)
                   :east nil
                   :south nil nil
                   :east nil nil
                   :south nil nil nil
                   :east nil nil nil nil nil
                   :north nil nil
                   :east nil nil
                   :north nil nil
                   :east nil nil nil nil nil
                   :east)
             (list (make-instance 'wall        :x 1  :y 0 :z 0)
                   (make-instance 'wall        :x 6  :y 1 :z 0)
                   (make-instance 'key         :x 7  :y 1 :z 0)
                   (make-instance 'slope-ws    :x 10 :y 1 :z 0)
                   (make-instance 'wall        :x 13 :y 2 :z 0)
                   (make-instance 'wall        :x 3  :y 3 :z 0)
                   (make-instance 'wall        :x 4  :y 3 :z 0)
                   (make-instance 'wall        :x 8  :y 3 :z 0)
                   (make-instance 'wall        :x 9  :y 3 :z 0)
                   (make-instance 'wall        :x 2  :y 4 :z 0)
                   (make-instance 'key         :x 4  :y 4 :z 0)
                   (make-instance 'turnstile-e :x 5  :y 4 :z 0)
                   (make-instance 'turnstile-s :x 7  :y 4 :z 0)
                   (make-instance 'key         :x 8  :y 4 :z 0)
                   (make-instance 'wall        :x 10 :y 4 :z 0)
                   (make-instance 'slope-es    :x 0  :y 5 :z 0)
                   (make-instance 'turnstile-w :x 2  :y 5 :z 0)
                   (make-instance 'wall        :x 6  :y 5 :z 0)
                   (make-instance 'turnstile-e :x 10 :y 5 :z 0)
                   (make-instance 'turnstile-e :x 12 :y 5 :z 0)
                   (make-instance 'block-timer :x 14 :y 5 :z 0 :time 18)
                   (make-instance 'wall        :x 2  :y 6 :z 0)
                   (make-instance 'wall        :x 10 :y 6 :z 0)
                   (make-instance 'exit        :x 16 :y 6 :z 0)
                   (make-instance 'wall        :x 2  :y 7 :z 0)
                   (make-instance 'wall        :x 10 :y 7 :z 0)
                   (make-instance 'wall        :x 0  :y 8 :z 0)
                   (make-instance 'wall        :x 3  :y 8 :z 0)
                   (make-instance 'wall        :x 9  :y 8 :z 0)
                   (make-instance 'slope-wn    :x 14 :y 8 :z 0)
                   (make-instance 'wall        :x 4  :y 9 :z 0)
                   (make-instance 'wall        :x 8  :y 9 :z 0)
                   (make-instance 'wall        :x 1  :y 10 :z 0)
                   (make-instance 'wall        :x 5  :y 10 :z 0)
                   (make-instance 'wall        :x 7  :y 10 :z 0)
                   (make-instance 'wall        :x 11 :y 10 :z 0)
                   (make-instance 'turnstile-n :x 6  :y 11 :z 0)
                   (make-instance 'wall        :x 9  :y 12 :z 0)
                   (make-instance 'wall        :x 3  :y 13 :z 0)
                   (make-instance 'wall        :x 7  :y 14 :z 0)
                   (make-instance 'player      :x 0  :y 14 :z 0))))
    (2 (list (list nil nil
                   :west nil nil nil nil nil nil
                   :south nil nil nil nil
                   :east nil nil nil nil
                   :north nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil nil
                   :north nil nil nil
                   :west nil nil
                   :east nil nil nil nil
                   :north nil nil nil nil nil
                   :west nil nil nil nil
                   :south nil nil nil
                   :north nil nil nil nil
                   :west nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil
                   :west nil nil nil nil
                   :south)
             (list (make-instance 'wall          :x 5  :y 0 :z 0)
                   (make-instance 'block-counter :x 7  :y 0 :count 1)
                   (make-instance 'block-counter :x 1  :y 1 :count 1)
                   (make-instance 'block-counter :x 9  :y 1 :count 1)
                   (make-instance 'wall          :x 4  :y 2)
                   (make-instance 'wall          :x 6  :y 2)
                   (make-instance 'block-counter :x 0  :y 3 :count 1)
                   (make-instance 'key           :x 3  :y 3)
                   (make-instance 'wall          :x 4  :y 3)
                   (make-instance 'wall          :x 6  :y 3)
                   (make-instance 'key           :x 7  :y 3)
                   (make-instance 'wall          :x 2  :y 4)
                   (make-instance 'wall          :x 3  :y 4)
                   (make-instance 'wall          :x 4  :y 4)
                   (make-instance 'wall          :x 6  :y 4)
                   (make-instance 'wall          :x 7  :y 4)
                   (make-instance 'wall          :x 8  :y 4)
                   (make-instance 'wall          :x 0  :y 5)
                   (make-instance 'player        :x 5  :y 5)
                   (make-instance 'wall          :x 10 :y 5)
                   (make-instance 'wall          :x 2  :y 6)
                   (make-instance 'wall          :x 3  :y 6)
                   (make-instance 'wall          :x 4  :y 6)
                   (make-instance 'wall          :x 6  :y 6)
                   (make-instance 'wall          :x 7  :y 6)
                   (make-instance 'wall          :x 8  :y 6)
                   (make-instance 'key           :x 3  :y 7)
                   (make-instance 'wall          :x 4  :y 7)
                   (make-instance 'wall          :x 6  :y 7)
                   (make-instance 'key           :x 7  :y 7)
                   (make-instance 'block-counter :x 10 :y 7 :count 1)
                   (make-instance 'wall          :x 4  :y 8)
                   (make-instance 'wall          :x 6  :y 8)
                   (make-instance 'block-counter :x 1  :y 9 :count 1)
                   (make-instance 'block-counter :x 9  :y 9 :count 1)
                   (make-instance 'exit          :x 1  :y 10)
                   (make-instance 'block-counter :x 3  :y 10 :count 1)
                   (make-instance 'wall          :x 5  :y 10))))
    (3 (list (list nil nil
                   :north nil nil nil nil nil nil nil nil nil nil
                   nil nil nil nil nil nil nil nil nil nil
                   nil nil nil nil nil nil nil nil nil nil
                   nil nil nil nil nil nil nil nil nil nil
                   nil nil nil nil nil nil nil nil nil nil
                   nil nil nil nil nil nil nil nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil
                   :south nil nil nil nil nil
                   :north nil nil nil nil nil
                   :east nil nil nil nil nil
                   :south nil nil nil nil nil
                   :west nil nil nil nil nil
                   :south nil nil nil nil nil
                   :west nil nil nil nil nil
                   :north nil nil nil nil nil
                   :west nil nil nil nil nil
                   :north nil nil nil nil nil
                   :west)
             (list (make-instance 'slope-es      :x 6  :y 0 :z 0)
                   (make-instance 'slope-ws      :x 11 :y 0 :z 0)
                   (make-instance 'block-timer   :x 2  :y 2 :z 0 :time 18)
                   (make-instance 'exit          :x 0  :y 3 :z 0)
                   (make-instance 'turnstile-s   :x 3  :y 3 :z 0)
                   (make-instance 'player        :x 6  :y 3 :z 0)
                   (make-instance 'pass-counter  :x 11 :y 3 :z 1 :count 2)
                   (make-instance 'wall          :x 9  :y 4 :z 0)
                   (make-instance 'wall          :x 4  :y 5 :z 0)
                   (make-instance 'wall          :x 1  :y 6 :z 0)
                   (make-instance 'wall          :x 8  :y 6 :z 0)
                   (make-instance 'key           :x 3  :y 7 :z 0)
                   (make-instance 'wall          :x 3  :y 8 :z 0)
                   (make-instance 'slope-en      :x 6  :y 8 :z 0)
                   (make-instance 'slope-wn      :x 11 :y 8 :z 0)
                   (make-instance 'wall          :x 5  :y 9 :z 0))))
    (4 (list (list nil nil
                   :east nil nil nil nil nil
                   :west nil nil
                   :north nil nil
                   :south nil nil
                   :east nil nil nil
                   :north nil nil
                   :east nil nil nil
                   :west nil nil
                   :north nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil
                   :north nil nil nil
                   :east nil nil nil nil nil
                   :west nil nil
                   :north nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil
                   :north nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil nil
                   :east nil nil nil nil
                   :south nil nil nil nil
                   :north nil nil nil nil
                   :east nil nil nil nil
                   :south nil nil nil nil
                   :north nil nil nil nil
                   :east nil nil nil nil
                   :south nil nil nil nil
                   :north nil nil nil nil nil
                   :east nil nil nil nil nil
                   :south nil nil nil nil nil
                   :west nil nil nil nil
                   :south nil
                   :north nil nil nil nil nil
                   :east nil nil nil nil
                   :south nil nil nil
                   :west nil nil nil nil
                   :north nil
                   :west nil nil
                   :south nil
                   :west nil nil
                   :south nil
                   :north nil nil nil
                   :east nil nil nil nil nil nil nil nil
                   :south nil nil nil
                   :west nil nil
                   :north nil
                   :west nil nil
                   :north nil
                   :west nil nil
                   :south nil
                   :west nil nil
                   :north nil
                   :west nil nil
                   :north nil
                   :west nil nil
                   :south nil
                   :west nil nil
                   :south nil
                   :north nil nil nil
                   :east nil nil nil nil nil nil nil nil nil nil nil nil
                   :south nil nil nil
                   :west nil nil
                   :north nil
                   :west nil nil
                   :north nil
                   :west nil nil
                   :south nil nil nil
                   :west nil nil
                   :north nil
                   :west nil nil
                   :south nil
                   :west nil nil
                   :north nil
                   :west)
             (list (make-instance 'wall          :x 0  :y 0 :z 0)
                   (make-instance 'wall          :x 1  :y 0 :z 0)
                   (make-instance 'wall          :x 2  :y 0 :z 0)
                   (make-instance 'wall          :x 3  :y 0 :z 0)
                   (make-instance 'wall          :x 4  :y 0 :z 0)
                   (make-instance 'wall          :x 5  :y 0 :z 0)
                   (make-instance 'wall          :x 6  :y 0 :z 0)
                   (make-instance 'wall          :x 7  :y 0 :z 0)
                   (make-instance 'wall          :x 8  :y 0 :z 0)
                   (make-instance 'wall          :x 9  :y 0 :z 0)
                   (make-instance 'wall          :x 10 :y 0 :z 0)
                   (make-instance 'wall          :x 11 :y 0 :z 0)
                   (make-instance 'wall          :x 12 :y 0 :z 0)
                   (make-instance 'wall          :x 13 :y 0 :z 0)
                   (make-instance 'wall          :x 14 :y 0 :z 0)
                   (make-instance 'wall          :x 15 :y 0 :z 0)
                   (make-instance 'wall          :x 16 :y 0 :z 0)
                   (make-instance 'wall          :x 17 :y 0 :z 0)
                   (make-instance 'wall          :x 18 :y 0 :z 0)
                   (make-instance 'wall          :x 0  :y 1 :z 0)
                   (make-instance 'block-counter :x 6  :y 1 :z 0 :count 1)
                   (make-instance 'block-counter :x 10 :y 1 :z 0 :count 1)
                   (make-instance 'block-counter :x 14 :y 1 :z 0 :count 1)
                   (make-instance 'key           :x 17 :y 1 :z 0)
                   (make-instance 'wall          :x 18 :y 1 :z 0)
                   (make-instance 'wall          :x 0  :y 2 :z 0)
                   (make-instance 'wall          :x 2  :y 2 :z 0)
                   (make-instance 'wall          :x 3  :y 2 :z 0)
                   (make-instance 'wall          :x 6  :y 2 :z 0)
                   (make-instance 'wall          :x 7  :y 2 :z 0)
                   (make-instance 'wall          :x 10 :y 2 :z 0)
                   (make-instance 'wall          :x 11 :y 2 :z 0)
                   (make-instance 'wall          :x 14 :y 2 :z 0)
                   (make-instance 'wall          :x 15 :y 2 :z 0)
                   (make-instance 'wall          :x 16 :y 2 :z 0)
                   (make-instance 'turnstile-s   :x 17 :y 2 :z 0)
                   (make-instance 'wall          :x 18 :y 2 :z 0)
                   (make-instance 'wall          :x 0  :y 3 :z 0)
                   (make-instance 'pulled        :x 5  :y 3 :z 0 :north t :south t)
                   (make-instance 'pulled        :x 9 :y 3 :z 0 :north t :south t)
                   (make-instance 'pulled        :x 13 :y 3 :z 0 :north t :south t)
                   (make-instance 'wall          :x 18 :y 3 :z 0)
                   (make-instance 'wall          :x 0  :y 4 :z 0)
                   (make-instance 'wall          :x 1  :y 4 :z 0)
                   (make-instance 'wall          :x 2  :y 4 :z 0)
                   (make-instance 'wall          :x 3  :y 4 :z 0)
                   (make-instance 'wall          :x 4  :y 4 :z 0)
                   (make-instance 'wall          :x 6  :y 4 :z 0)
                   (make-instance 'wall          :x 7  :y 4 :z 0)
                   (make-instance 'wall          :x 8  :y 4 :z 0)
                   (make-instance 'wall          :x 10 :y 4 :z 0)
                   (make-instance 'wall          :x 11 :y 4 :z 0)
                   (make-instance 'wall          :x 12 :y 4 :z 0)
                   (make-instance 'wall          :x 14 :y 4 :z 0)
                   (make-instance 'wall          :x 15 :y 4 :z 0)
                   (make-instance 'wall          :x 16 :y 4 :z 0)
                   (make-instance 'wall          :x 18 :y 4 :z 0)
                   (make-instance 'exit          :x 0  :y 5 :z 0)
                   (make-instance 'player        :x 2  :y 5 :z 0)
                   (make-instance 'slope-ws      :x 6  :y 5 :z 0)
                   (make-instance 'slope-ws      :x 10 :y 5 :z 0)
                   (make-instance 'slope-ws      :x 14 :y 5 :z 0)
                   (make-instance 'wall          :x 18 :y 5 :z 0)
                   (make-instance 'wall          :x 0  :y 6 :z 0)
                   (make-instance 'wall          :x 4  :y 6 :z 0)
                   (make-instance 'wall          :x 8  :y 6 :z 0)
                   (make-instance 'wall          :x 12 :y 6 :z 0)
                   (make-instance 'wall          :x 18 :y 6 :z 0)
                   (make-instance 'wall          :x 0  :y 7 :z 0)
                   (make-instance 'wall          :x 1  :y 7 :z 0)
                   (make-instance 'wall          :x 2  :y 7 :z 0)
                   (make-instance 'wall          :x 3  :y 7 :z 0)
                   (make-instance 'wall          :x 4  :y 7 :z 0)
                   (make-instance 'pulled        :x 5  :y 7 :z 0 :north t)
                   (make-instance 'wall          :x 6  :y 7 :z 0)
                   (make-instance 'wall          :x 7  :y 7 :z 0)
                   (make-instance 'wall          :x 8  :y 7 :z 0)
                   (make-instance 'pulled        :x 9  :y 7 :z 0 :north t)
                   (make-instance 'wall          :x 10 :y 7 :z 0)
                   (make-instance 'wall          :x 11 :y 7 :z 0)
                   (make-instance 'wall          :x 12 :y 7 :z 0)
                   (make-instance 'pulled        :x 13 :y 7 :z 0 :north t)
                   (make-instance 'wall          :x 14 :y 7 :z 0)
                   (make-instance 'wall          :x 15 :y 7 :z 0)
                   (make-instance 'wall          :x 16 :y 7 :z 0)
                   (make-instance 'wall          :x 17 :y 7 :z 0)
                   (make-instance 'wall          :x 18 :y 7 :z 0))))
    (5 (list (list nil nil
                   :north nil nil nil
                   :west :west :west
                   :north nil nil
                   :south nil nil
                   :west
                   :north nil nil
                   :south nil nil
                   :west :west
                   :north :north
                   :east nil nil nil
                   :north
                   :west nil nil nil
                   :north
                   :east nil
                   :west nil
                   :south :south :south
                   :east :east :east :east
                   :north nil nil
                   :west nil nil
                   :north nil nil
                   :east
                   :south nil
                   :east nil nil nil nil nil
                   :south nil nil
                   :west :west :west
                   :north nil nil
                   :south nil nil
                   :east
                   :north nil nil
                   :south nil nil
                   :east
                   :north nil nil nil
                   :west nil nil nil
                   :east nil nil nil
                   :south nil nil nil
                   :west :west :west :west :west
                   :north nil
                   :west nil
                   :north :north :north
                   :east nil nil
                   :west nil nil
                   :north
                   :east nil nil nil
                   :south nil nil
                   :east nil
                   :south nil
                   :west nil
                   :north nil nil nil
                   :west nil
                   :south :south :south :south :south :south
                   :east nil
                   :north nil
                   :south nil
                   :east :east :east :east :east :east :east :east
                   :north nil
                   :south nil
                   :east
                   :north nil
                   :south nil
                   :east :east
                   :north :north
                   :west nil nil nil
                   :north nil
                   :east nil nil nil
                   :north
                   :west nil
                   :east nil
                   :south :south :south
                   :west :west :west :west
                   :north nil nil
                   :east nil nil
                   :north nil
                   :west nil
                   :south nil
                   :west nil nil nil nil nil nil nil nil nil
                   :south :south
                   :east :east :east :east :east :east :east
                   :north nil nil nil
                   :south nil nil nil
                   :east
                   :north nil nil nil
                   :south nil nil nil
                   :west :west
                   :north nil nil nil
                   :east nil nil nil
                   :south nil
                   :west nil nil nil nil nil nil nil nil
                   :south :south
                   :east :east :east :east :east :east :east :east :east :east :east
                   :north nil
                   :east nil
                   :north :north :north
                   :west nil nil nil
                   :east nil nil nil
                   :north
                   :west nil nil nil
                   :south nil nil nil
                   :west nil
                   :south
                   :east nil
                   :north nil nil nil
                   :east nil nil
                   :north :north :north :north :north
                   :west :west
                   :south nil nil
                   :north nil nil
                   :west
                   :south nil nil
                   :north nil nil
                   :east :east :east
                   :south :south
                   :west nil nil nil
                   :south
                   :west
                   :east nil nil nil
                   :south
                   :west nil
                   :east nil
                   :north :north
                   :west nil
                   :north nil
                   :west :west :west
                   :south nil nil nil
                   :east nil nil
                   :south nil
                   :west
                   :north nil nil
                   :west nil nil nil nil nil
                   :north nil nil nil
                   :east :east :east :east :east :east
                   :south nil nil
                   :north nil nil
                   :east
                   :south :south :south :south
                   :west nil nil
                   :east nil nil
                   :south
                   :west nil nil
                   :east nil nil
                   :south
                   :west nil nil nil
                   :north nil nil nil
                   :west nil nil
                   :north nil nil nil
                   :south nil nil nil
                   :east nil nil nil
                   :north :north :north :north
                   :west nil nil nil nil nil nil nil
                   :north nil nil
                   :east :east :east
                   :south nil nil
                   :north nil nil
                   :west
                   :south nil nil
                   :north nil nil
                   :west :west :west :west
                   :south nil nil
                   :north nil nil
                   :west
                   :south nil nil
                   :north nil nil
                   :west :west
                   :south :south
                   :east nil nil nil
                   :south nil
                   :west nil nil nil
                   :south
                   :east nil nil nil
                   :west nil nil nil
                   :north :north
                   :east nil nil
                   :north nil nil
                   :east :east :east
                   :south nil nil nil
                   :west nil nil
                   :south nil
                   :east nil
                   :north nil
                   :east nil nil nil nil nil nil nil nil nil nil
                   :north :north
                   :west :west :west :west :west :west :west
                   :south nil nil nil
                   :north nil nil nil
                   :west
                   :south nil nil nil
                   :north nil nil nil
                   :east :east
                   :south nil nil nil
                   :west nil nil nil nil
                   :east nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil
                   :north :north
                   :west :west :west :west :west :west :west :west :west :west :west :west
                   :south :south :south :south
                   :east nil nil
                   :west nil nil
                   :south
                   :east nil nil
                   :west nil nil
                   :south
                   :east nil nil nil
                   :north nil nil nil
                   :south nil nil
                   :east nil
                   :west nil nil nil
                   :north :north :north :north :north
                   :east nil
                   :north nil
                   :east :east :east :east :east
                   :south nil nil nil nil
                   :west nil nil
                   :south nil
                   :north nil
                   :east nil nil nil nil nil nil nil nil
                   :north :north
                   :west :west :west :west :west :west
                   :south nil nil nil
                   :west nil nil
                   :east nil nil nil
                   :north nil
                   :east nil nil nil nil
                   :north :north
                   :west :west :west :west :west :west
                   :south nil nil nil nil
                   :west nil nil nil
                   :south nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil nil
                   :north :north
                   :west :west :west :west :west :west :west :west :west :west :west :west
                   :south :south :south :south :south :south :south
                   :east nil nil
                   :north nil nil nil nil
                   :east nil nil
                   :south nil nil
                   :east nil
                   :west nil nil
                   :north nil nil nil
                   :east nil nil
                   :south nil nil
                   :east)
             (list (make-instance 'pulled :x 3  :y 3 :z 0 :north t :south t :east t :west t) ; Top line
                   (make-instance 'pulled :x 4  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 3  :y 4 :z 0 :north t :south t :east t :west t) ; Second line
                   (make-instance 'toggle :x 4  :y 4 :z 0)
                   (make-instance 'pulled :x 5  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'toggle :x 10 :y 4 :z 0)
                   (make-instance 'pulled :x 11 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 3  :y 5 :z 0 :north t :south t :east t :west t) ; Third line
                   (make-instance 'pulled :x 4  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 6 :z 0 :north t :south t :east t :west t) ; Fourth line
                   (make-instance 'pulled :x 5  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 7 :z 0 :north t :south t :east t :west t) ; Fifth line
                   (make-instance 'pulled :x 6  :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'exit   :x 7  :y 7 :z 0)
                   (make-instance 'pulled :x 8  :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 8 :z 0 :north t :south t :east t :west t) ; Mirror fourth line
                   (make-instance 'pulled :x 5  :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 3  :y 9 :z 0 :north t :south t :east t :west t) ; Mirrored third line
                   (make-instance 'pulled :x 4  :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 3  :y 10 :z 0 :north t :south t :east t :west t) ; Mirrored second line
                   (make-instance 'toggle :x 4  :y 10 :z 0)
                   (make-instance 'pulled :x 5  :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'toggle :x 10 :y 10 :z 0)
                   (make-instance 'pulled :x 11 :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 3  :y 11 :z 0 :north t :south t :east t :west t) ; Mirrored top line
                   (make-instance 'pulled :x 4  :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'player :x 7  :y 14 :z 0)
                   (make-instance 'stepper :x 1  :y 1 :z -1) ; Top row
                   (make-instance 'stepper :x 2  :y 1 :z -1)
                   (make-instance 'stepper :x 3  :y 1 :z -1)
                   (make-instance 'stepper :x 4  :y 1 :z -1)
                   (make-instance 'stepper :x 5  :y 1 :z -1)
                   (make-instance 'stepper :x 6  :y 1 :z -1)
                   (make-instance 'stepper :x 7  :y 1 :z -1)
                   (make-instance 'stepper :x 8  :y 1 :z -1)
                   (make-instance 'stepper :x 9  :y 1 :z -1)
                   (make-instance 'stepper :x 10 :y 1 :z -1)
                   (make-instance 'stepper :x 11 :y 1 :z -1)
                   (make-instance 'stepper :x 12 :y 1 :z -1)
                   (make-instance 'stepper :x 13 :y 1 :z -1)
                   (make-instance 'stepper :x 1  :y 2 :z -1) ; West column
                   (make-instance 'stepper :x 1  :y 3 :z -1)
                   (make-instance 'stepper :x 1  :y 4 :z -1)
                   (make-instance 'stepper :x 1  :y 5 :z -1)
                   (make-instance 'stepper :x 1  :y 6 :z -1)
                   (make-instance 'stepper :x 1  :y 7 :z -1)
                   (make-instance 'stepper :x 1  :y 8 :z -1)
                   (make-instance 'stepper :x 1  :y 9 :z -1)
                   (make-instance 'stepper :x 1  :y 10 :z -1)
                   (make-instance 'stepper :x 1  :y 11 :z -1)
                   (make-instance 'stepper :x 1  :y 12 :z -1)
                   (make-instance 'stepper :x 1  :y 13 :z -1) ; Bottom row
                   (make-instance 'stepper :x 2  :y 13 :z -1)
                   (make-instance 'stepper :x 3  :y 13 :z -1)
                   (make-instance 'stepper :x 4  :y 13 :z -1)
                   (make-instance 'stepper :x 5  :y 13 :z -1)
                   (make-instance 'stepper :x 6  :y 13 :z -1)
                   (make-instance 'stepper :x 7  :y 13 :z -1)
                   (make-instance 'stepper :x 8  :y 13 :z -1)
                   (make-instance 'stepper :x 9  :y 13 :z -1)
                   (make-instance 'stepper :x 10 :y 13 :z -1)
                   (make-instance 'stepper :x 11 :y 13 :z -1)
                   (make-instance 'stepper :x 12 :y 13 :z -1)
                   (make-instance 'stepper :x 13 :y 13 :z -1)
                   (make-instance 'stepper :x 13 :y 2 :z -1) ; East column
                   (make-instance 'stepper :x 13  :y 3 :z -1)
                   (make-instance 'stepper :x 13  :y 4 :z -1)
                   (make-instance 'stepper :x 13  :y 5 :z -1)
                   (make-instance 'stepper :x 13  :y 6 :z -1)
                   (make-instance 'stepper :x 13  :y 7 :z -1)
                   (make-instance 'stepper :x 13  :y 8 :z -1)
                   (make-instance 'stepper :x 13  :y 9 :z -1)
                   (make-instance 'stepper :x 13  :y 10 :z -1)
                   (make-instance 'stepper :x 13  :y 11 :z -1)
                   (make-instance 'stepper :x 13  :y 12 :z -1))))
    (6 (list (list nil nil
                   :west nil nil nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil
                   :west nil nil nil nil nil nil nil
                   :east nil nil nil nil nil nil nil
                   :north nil nil nil
                   :west nil nil nil nil nil nil nil
                   :south nil nil nil
                   :west nil nil
                   :north nil nil
                   :west nil
                   :east nil nil nil nil nil nil
                   :north nil nil nil nil
                   :west nil nil nil
                   :south nil nil nil nil nil nil nil
                   :south nil
                   :north nil nil nil nil nil nil nil
                   :east nil nil nil
                   :south nil nil nil nil nil nil nil
                   :west nil nil nil
                   :north nil nil nil nil nil
                   :west nil nil nil
                   :south nil nil nil
                   :west nil nil
                   :north nil nil
                   :west nil nil
                   :east nil nil nil nil nil
                   :north nil nil
                   :west nil nil nil
                   :south nil nil nil
                   :west nil nil
                   :north nil nil
                   :west nil nil nil
                   :east nil nil nil nil
                   :south nil nil
                   :west nil nil
                   :east nil nil nil nil nil nil
                   :south nil nil nil
                   :west nil nil nil
                   :north nil nil nil nil nil
                   :west nil nil nil
                   :south nil nil nil
                   :west nil nil nil
                   :north nil nil
                   :west nil nil nil nil nil nil nil nil)
             (list (make-instance 'pulled :x 2  :y 2 :z 0 :north t :south t :east t :west t) ; Top pulled line
                   (make-instance 'pulled :x 3  :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 2 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 3 :z 0 :north t :south t :east t :west t) ; Second pulled line
                   (make-instance 'pulled :x 3  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 4 :z 0 :north t :south t :east t :west t) ; Third pulled line
                   (make-instance 'pulled :x 3  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 5 :z 0 :north t :south t :east t :west t) ; Fourth pulled line
                   (make-instance 'pulled :x 3  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 6 :z 0 :north t :south t :east t :west t) ; Fifth pulled line (3 empty)
                   (make-instance 'pulled :x 3  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 6 :z 0 :north t :south t :east t :west t)
                   ;; Three empty
                   (make-instance 'pulled :x 11 :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 7 :z 0 :north t :south t :east t :west t) ; Sixth pulled line (5 empty)
                   (make-instance 'pulled :x 3  :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 7 :z 0 :north t :south t :east t :west t)
                   ;; Five empty
                   (make-instance 'pulled :x 12 :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 8 :z 0 :north t :south t :east t :west t) ; Seventh pulled line (7 empty)
                   (make-instance 'pulled :x 3  :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 8 :z 0 :north t :south t :east t :west t)
                   ;; Seven empty
                   (make-instance 'pulled :x 13 :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 9 :z 0 :north t :south t :east t :west t) ; Eight pulled line (7 empty) player's line
                   (make-instance 'pulled :x 3  :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 9 :z 0 :north t :south t :east t :west t)
                   ;; Seven empty
                   (make-instance 'pulled :x 13 :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 10 :z 0 :north t :south t :east t :west t) ; Ninth pulled line (7 empty)
                   (make-instance 'pulled :x 3  :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 10 :z 0 :north t :south t :east t :west t)
                   ;; Seven empty
                   (make-instance 'pulled :x 13 :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 10 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 11 :z 0 :north t :south t :east t :west t) ; Tenth pulled line (5 empty)
                   (make-instance 'pulled :x 3  :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 11 :z 0 :north t :south t :east t :west t)
                   ;; Five empty
                   (make-instance 'pulled :x 12 :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 11 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 12 :z 0 :north t :south t :east t :west t) ; Eleventh pulled line (3 empty)
                   (make-instance 'pulled :x 3  :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 12 :z 0 :north t :south t :east t :west t)
                   ;; Three empty
                   (make-instance 'pulled :x 11 :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 12 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 13 :z 0 :north t :south t :east t :west t) ; Third to last pulled line
                   (make-instance 'pulled :x 3  :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 13 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 14 :z 0 :north t :south t :east t :west t) ; Second to last pulled line
                   (make-instance 'pulled :x 3  :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 14 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 2  :y 15 :z 0 :north t :south t :east t :west t) ; Last pulled line
                   (make-instance 'pulled :x 3  :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 4  :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 5  :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8  :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9  :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10 :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 11 :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 12 :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 13 :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 14 :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 15 :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 16 :y 15 :z 0 :north t :south t :east t :west t)
                   (make-instance 'exit   :x 9  :y 0 :z 0)
                   (make-instance 'exit   :x 0  :y 9 :z 0)
                   (make-instance 'exit   :x 18 :y 9 :z 0)
                   (make-instance 'exit   :x 9  :y 18 :z 0)
                   (make-instance 'player :x 9  :y 9 :z 0))))
    (7 (list (list nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil nil nil nil nil
                   :south nil nil nil nil nil nil
                   :north nil nil nil nil nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil nil
                   :east nil nil nil nil nil
                   :south nil nil nil
                   :west nil nil nil
                   :east nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :west nil nil nil nil nil
                   :east nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :west nil nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil
                   :south nil
                   :north nil nil
                   :west nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil
                   :west nil nil nil nil nil nil nil nil nil
                   :south nil nil nil nil nil nil nil
                   :east nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                   :south nil nil
                   :west nil nil nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil nil nil nil nil nil
                   :south nil nil nil nil nil nil nil
                   :east nil nil nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil nil nil nil nil nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil
                   :south nil nil
                   :north nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil
                   :west nil nil nil nil nil nil nil nil nil
                   :north nil nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil
                   :south nil nil nil
                   :north nil nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil
                   :west nil nil nil nil nil nil nil
                   :north nil nil nil
                   :east nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil
                   :south nil nil nil nil
                   :north nil nil nil nil nil
                   :west nil nil nil nil nil nil nil nil nil nil
                   :north nil nil
                   :east nil nil nil nil nil nil nil
                   :south nil nil nil
                   :east nil nil nil
                   :west nil nil nil nil nil
                   :north nil nil nil
                   :east nil nil nil
                   :south nil nil nil
                   :east nil nil nil nil
                   :south nil nil nil nil nil
                   :west nil nil nil nil)
             (list (make-instance 'wall   :x 0  :y 0 :z 0) ; Top row
                   (make-instance 'wall   :x 1  :y 0 :z 0)
                   (make-instance 'wall   :x 2  :y 0 :z 0)
                   (make-instance 'wall   :x 3  :y 0 :z 0)
                   (make-instance 'wall   :x 4  :y 0 :z 0)
                   (make-instance 'wall   :x 5  :y 0 :z 0)
                   (make-instance 'wall   :x 6  :y 0 :z 0)
                   (make-instance 'wall   :x 7  :y 0 :z 0)
                   (make-instance 'wall   :x 8  :y 0 :z 0)
                   (make-instance 'wall   :x 0  :y 1 :z 0) ; Second row
                   (make-instance 'player :x 1  :y 1 :z 0)
                   (make-instance 'wall   :x 8  :y 1 :z 0)
                   (make-instance 'wall   :x 9  :y 1 :z 0)
                   (make-instance 'wall   :x 10 :y 1 :z 0)
                   (make-instance 'wall   :x 11 :y 1 :z 0)
                   (make-instance 'wall   :x 12 :y 1 :z 0)
                   (make-instance 'wall   :x 13 :y 1 :z 0)
                   (make-instance 'wall   :x 14 :y 1 :z 0)
                   (make-instance 'wall   :x 15 :y 1 :z 0)
                   (make-instance 'wall   :x 0  :y 2 :z 0) ; Third row
                   (make-instance 'wall   :x 15 :y 2 :z 0)
                   (make-instance 'wall   :x 0  :y 3 :z 0) ; Fourth row
                   (make-instance 'pulled :x 14 :y 3 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 15 :y 3 :z 0)
                   (make-instance 'wall   :x 0  :y 4 :z 0) ; Fifth row
                   (make-instance 'wall   :x 3  :y 4 :z 0)
                   (make-instance 'wall   :x 4  :y 4 :z 0)
                   (make-instance 'pulled :x 5  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7  :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 8  :y 4 :z 0)
                   (make-instance 'wall   :x 9  :y 4 :z 0)
                   (make-instance 'pulled :x 10 :y 4 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 11  :y 4 :z 0)
                   (make-instance 'wall   :x 12  :y 4 :z 0)
                   (make-instance 'wall   :x 15  :y 4 :z 0)
                   (make-instance 'wall   :x 0   :y 5 :z 0) ; Sixth row
                   (make-instance 'wall   :x 3   :y 5 :z 0)
                   (make-instance 'wall   :x 4   :y 5 :z 0)
                   (make-instance 'pulled :x 5   :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6   :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 7   :y 5 :z 0)
                   (make-instance 'wall   :x 8   :y 5 :z 0)
                   (make-instance 'wall   :x 9   :y 5 :z 0)
                   (make-instance 'pulled :x 10  :y 5 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 11   :y 5 :z 0)
                   (make-instance 'wall   :x 12   :y 5 :z 0)
                   (make-instance 'wall   :x 15   :y 5 :z 0)
                   (make-instance 'wall   :x 0    :y 6 :z 0) ; Seventh row
                   (make-instance 'wall   :x 3    :y 6 :z 0)
                   (make-instance 'wall   :x 4    :y 6 :z 0)
                   (make-instance 'pulled :x 5    :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6    :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 7    :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 8    :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 9    :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 10   :y 6 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 11   :y 6 :z 0)
                   (make-instance 'wall   :x 12   :y 6 :z 0)
                   (make-instance 'wall   :x 15   :y 6 :z 0)
                   (make-instance 'wall   :x 0    :y 7 :z 0) ; Eight row
                   (make-instance 'wall   :x 3    :y 7 :z 0)
                   (make-instance 'wall   :x 4    :y 7 :z 0)
                   (make-instance 'pulled :x 5    :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6    :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'exit   :x 8    :y 7 :z 0)
                   (make-instance 'pulled :x 10   :y 7 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 11   :y 7 :z 0)
                   (make-instance 'wall   :x 12   :y 7 :z 0)
                   (make-instance 'wall   :x 15   :y 7 :z 0)
                   (make-instance 'wall   :x 0    :y 8 :z 0) ; Ninth row
                   (make-instance 'wall   :x 3    :y 8 :z 0)
                   (make-instance 'wall   :x 4    :y 8 :z 0)
                   (make-instance 'pulled :x 5    :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'pulled :x 6    :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 7    :y 8 :z 0)
                   (make-instance 'wall   :x 8    :y 8 :z 0)
                   (make-instance 'wall   :x 9    :y 8 :z 0)
                   (make-instance 'pulled :x 10   :y 8 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 11   :y 8 :z 0)
                   (make-instance 'wall   :x 12   :y 8 :z 0)
                   (make-instance 'wall   :x 15   :y 8 :z 0)
                   (make-instance 'wall   :x 0    :y 9 :z 0) ; Tenth row
                   (make-instance 'pulled :x 14   :y 9 :z 0 :north t :south t :east t :west t)
                   (make-instance 'wall   :x 15   :y 9 :z 0)
                   (make-instance 'wall   :x 0    :y 10 :z 0) ; Eleventh row
                   (make-instance 'wall   :x 1    :y 10 :z 0)
                   (make-instance 'wall   :x 15   :y 10 :z 0)
                   (make-instance 'wall   :x 1    :y 11 :z 0) ; Last row
                   (make-instance 'wall   :x 2    :y 11 :z 0)
                   (make-instance 'wall   :x 3    :y 11 :z 0)
                   (make-instance 'wall   :x 4    :y 11 :z 0)
                   (make-instance 'wall   :x 5    :y 11 :z 0)
                   (make-instance 'wall   :x 6    :y 11 :z 0)
                   (make-instance 'wall   :x 7    :y 11 :z 0)
                   (make-instance 'wall   :x 8    :y 11 :z 0)
                   (make-instance 'wall   :x 9    :y 11 :z 0)
                   (make-instance 'wall   :x 10   :y 11 :z 0)
                   (make-instance 'wall   :x 11   :y 11 :z 0)
                   (make-instance 'wall   :x 12   :y 11 :z 0)
                   (make-instance 'wall   :x 13   :y 11 :z 0)
                   (make-instance 'wall   :x 14   :y 11 :z 0)
                   (make-instance 'wall   :x 15   :y 11 :z 0))))))


M src/main.lisp => src/main.lisp +1 -0
@@ 116,6 116,7 @@ This is similar to 'test' but runs much slower."
                   (update *level*))
                 (when *next-level*
                   (load-next-level)
                   (trivial-garbage:gc :full t)
                   (when log-input
                     (format s "~%----------LEVEL ~A----------~%" *level-number*)))
                 (incf *update-counter*)