53 lines
1.6 KiB
Common Lisp
53 lines
1.6 KiB
Common Lisp
(ql:quickload "cl-charms")
|
|
(ql:quickload "trivial-left-pad")
|
|
|
|
(defvar *splits* '(("Kraid" 0 0 0)("Phantoon" 0 0 0)("Draygon" 0 0 0) ("Ridley" 0 0 0)))
|
|
|
|
(defun make-string-bruh () "bruh")
|
|
|
|
(defun add-to-string-if-not-empty (string suffix)
|
|
(cond ((not (zerop (length string))) (concatenate 'string string suffix))))
|
|
|
|
(defun number->two-wide (num)
|
|
(cond ((not (zerop num)) (format nil "~2,'0D" num)) (t "")))
|
|
|
|
(defun millis->strings (millis)
|
|
(let*
|
|
((hours (/ millis (* 1000 60 60)))
|
|
(minutes (mod (/ millis (* 1000 60)) 60))
|
|
(seconds (mod (/ millis 1000) 60))
|
|
(centis (mod millis 100)))
|
|
(list
|
|
(number->two-wide (floor hours))
|
|
(number->two-wide (floor minutes))
|
|
(format nil "~2,'0d" (floor seconds))
|
|
(format nil "~2,'0d" (floor centis)))))
|
|
|
|
(defun time->string (time_strs)
|
|
(concatenate 'string
|
|
(add-to-string-if-not-empty (car time_strs) ":")
|
|
(add-to-string-if-not-empty (cadr time_strs) ":")
|
|
(add-to-string-if-not-empty (caddr time_strs) ".")
|
|
(cadddr time_strs)))
|
|
|
|
(defun format-my-split (split)
|
|
(cond
|
|
((null split) "")
|
|
(t (concatenate 'string (trivial-left-pad:left-pad (car split) 15) (format-my-split (cdr split))))))
|
|
|
|
(defun hello-world ()
|
|
(charms:with-curses ()
|
|
(charms:disable-echoing)
|
|
(charms:enable-raw-input)
|
|
(loop named hello-world
|
|
with window = (charms:make-window 50 15 10 10)
|
|
do (progn
|
|
(charms:clear-window window)
|
|
(charms:write-string-at-point window (make-string-bruh) 0 0)
|
|
(charms:refresh-window window)
|
|
|
|
;; Process input
|
|
(when (eql (charms:get-char window) #\q)
|
|
(return-from hello-world))
|
|
(sleep 0.1)))))
|