time_guesser/main.fnl
2026-05-27 21:37:22 +01:00

41 lines
893 B
Fennel

(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
}