(defun fortunecookie ()
(princ "名前または学籍番号を入力:")
(let* ((id (read-line))
;; 今日の日付を取得して文字列にする(YYYYMMDD形式)
(date (multiple-value-bind (sec min hour day month year)
(get-decoded-time)
(format nil "~4,'0d~2,'0d~2,'0d" year month day)))
;; 名前と日付をつなげる
(combined (concatenate 'string id date))
;; 各文字の文字コードを合計
(seed (reduce #'+ (map 'list #'char-code combined)))
;; seedを5で割った余りでおみくじを選ぶ
(index (mod seed 5))
(result (nth index
'("大吉! 挑戦を続けよう"
"中吉! 今日は集中の日"
"小吉! まずは一歩"
"吉! 粘り勝ちを目指そう"
"凶...でも明日がある!"))))
(format t "結果:~A~%" result)))
(fortunecookie)
KGRlZnVuIGZvcnR1bmVjb29raWUgKCkKKHByaW5jICLlkI3liY3jgb7jgZ/jga/lrabnsY3nlarlj7fjgpLlhaXlipvvvJoiKQoobGV0KiAoKGlkIChyZWFkLWxpbmUpKQo7OyDku4rml6Xjga7ml6Xku5jjgpLlj5blvpfjgZfjgabmloflrZfliJfjgavjgZnjgovvvIhZWVlZTU1EROW9ouW8j++8iQooZGF0ZSAobXVsdGlwbGUtdmFsdWUtYmluZCAoc2VjIG1pbiBob3VyIGRheSBtb250aCB5ZWFyKQooZ2V0LWRlY29kZWQtdGltZSkKKGZvcm1hdCBuaWwgIn40LCcwZH4yLCcwZH4yLCcwZCIgeWVhciBtb250aCBkYXkpKSkKOzsg5ZCN5YmN44Go5pel5LuY44KS44Gk44Gq44GS44KLCihjb21iaW5lZCAoY29uY2F0ZW5hdGUgJ3N0cmluZyBpZCBkYXRlKSkKOzsg5ZCE5paH5a2X44Gu5paH5a2X44Kz44O844OJ44KS5ZCI6KiICihzZWVkIChyZWR1Y2UgIycrIChtYXAgJ2xpc3QgIydjaGFyLWNvZGUgY29tYmluZWQpKSkKOzsgc2VlZOOCkjXjgaflibLjgaPjgZ/kvZnjgorjgafjgYrjgb/jgY/jgZjjgpLpgbjjgbYKKGluZGV4IChtb2Qgc2VlZCA1KSkKKHJlc3VsdCAobnRoIGluZGV4CicoIuWkp+WQie+8gSDmjJHmiKbjgpLntprjgZHjgojjgYYiCiLkuK3lkInvvIEg5LuK5pel44Gv6ZuG5Lit44Gu5pelIgoi5bCP5ZCJ77yBIOOBvuOBmuOBr+S4gOatqSIKIuWQie+8gSDnspjjgorli53jgaHjgpLnm67mjIfjgZ3jgYYiCiLlh7YuLi7jgafjgoLmmI7ml6XjgYzjgYLjgovvvIEiKSkpKQooZm9ybWF0IHQgIue1kOaenO+8mn5BfiUiIHJlc3VsdCkpKQoKKGZvcnR1bmVjb29raWUp