(require :L5) (fn setup [] (size 640 480) (textSize 100)) (local steps 1440) (var step 0) ; (lambda lpad [num] (if (< num 10) (.. "0" num) num)) ; (lambda time [num] ; (let [hour (floor (map num 0 steps 0 24)) ; min (- num (* hour 60))] ; (.. (lpad hour) ":" (lpad min)))) (fn time [num] (let [hour (floor (map num 0 steps 0 24))] (: "%02d:%02d" :format hour (- num (* hour 60))))) (var pause false) (var won false) (fn key-pressed [] (when (= key "space") (set pause (not pause)))) (local goal-time (floor (random 0 steps))) (fn draw [] (when (and (not won) (not pause)) (set step (+ step 1))) (when (>= step steps) (set step 0)) (background 0 0 0) (text (time step) 175 150) (text (time goal-time) 175 250) (when (and pause (= goal-time step)) (set won true)) (when won (text "YOU WIN" 100 400))) { :s setup :d draw :k key-pressed }