Little by little !

FINALLY actually JAMMING and in LISP

Now I can work on the game by programming in lisp. Let's go through
#'make-game, which is just a record of hacking along in a repl,
dumping often flawed defs from a source editor.

                        ; I added unwind-protect of SDL_Quit() which is safe.

(defparameter *funs* (list))
(defun play-game () (game () () *funs*))

The game is whatever funs go in *funs*. (play-game) is a utility that
should probably be a symbol-macro.

Here, I push my line-drawer I wrote already in one direction, and run
the game

 (push (draw-lines-from (coord-liner 0 (+ 2 (truncate 640 *scale*)) 1
                         0 (+ 1 (truncate 480 *scale*)) 1
                         :transpose nil)
        '(255 0 0))
  *funs*)
 (play-game)

Add the other direction, marvel at it again:
 (push
  (draw-lines-from
   (coord-liner 0 (+ 2 (truncate 480 *scale*)) 1
                0 (+ 1 (truncate 640 *scale*)) 1
                :transpose t)
   '(255 255 0))
  *funs*)
 (play-game)

;;;Here I wrote pretty big special-scope singleton closures for the player and a base
;;;Trying them out (more than once in reality :D)
 (push (lambda () (Funcall (ensure-player) :paint t))
  *funs*)
 (push (lambda () (Funcall (ensure-base) :paint t))
  *funs*)
 (play-game)
 
;;; Add movement to the player using the exposed keyboardstate.
(push
  (lambda ()
   (funcall (ensure-player) :move
    (cond ((not (zerop (get-key-state *down*)))  's)
          ((not (zerop (get-key-state *up*)))    'n)
          ((not (zerop (get-key-state *left*)))  'w)
          ((not (zerop (get-key-state *right*))) 'e))))
  *funs*)
 (play-game)

;; (yay, we can walk around)...

;; I added a *plants* list and (spawn-plant-in x y w h) 
;; and (advance-someplants lists-of-name1->name2->fractional/probability)
;; and paint-plants.
 (loop repeat 6 do (spawn-plant-in -5 -5 15 15))
 ;;(print *plants*)
 (advance-some-plants '(leaves flower 7/10))
 ;;(print *plants*)
 ;;Nconc so the plants are always on top
 ;;(I wanted to see the plants - but that's probably backwards right)
 (nconc *funs* (list (lambda () (paint-plants))))
 (play-game)

So I'm pretty happy with a live CL repl as my "map editor".

And it finally looks like we are doing something sensible ;p though
there is basically no sensible way to write a bunch of up-front-C, but
now I am very happy. The jam is almost over though! I had an
offline-busy couple days.