(defun fortunecookie ()
(princ "名前または学籍番号を入力:")
(let* ((id (read-line))
;; 日付の取得
(now (get-universal-time))
(decoded-time (multiple-value-list (decode-universal-time now)))
(year (nth 5 decoded-time))
(month (nth 4 decoded-time))
(day (nth 3 decoded-time))
;; 日付を数字にまとめる(例:20250617)
(date-number (+ (* year 10000) (* month 100) day))
;; 文字列IDの文字コードの合計
(char-codes (map 'list #'char-code id))
;; シード = IDの文字コード合計 + 日付
(seed (+ (reduce #'+ char-codes :initial-value 0)
date-number))
;; 結果リスト
(result (nth (mod seed 5)
'("大吉!挑戦を続けよう"
"中吉!今日は集中の日"
"小吉!まずは一歩"
"吉!粘り勝ちを目指そう"
"凶…でも明日がある!"))))
(format t "~%日付:~4,'0D-~2,'0D-~2,'0D~%" year month day)
(format t "結果:~A~%" result)))
KGRlZnVuIGZvcnR1bmVjb29raWUgKCkKICAocHJpbmMgIuWQjeWJjeOBvuOBn+OBr+WtpuexjeeVquWPt+OCkuWFpeWKm++8miIpCiAgKGxldCogKChpZCAocmVhZC1saW5lKSkKICAgICAgICAgOzsg5pel5LuY44Gu5Y+W5b6XCiAgICAgICAgIChub3cgKGdldC11bml2ZXJzYWwtdGltZSkpCiAgICAgICAgIChkZWNvZGVkLXRpbWUgKG11bHRpcGxlLXZhbHVlLWxpc3QgKGRlY29kZS11bml2ZXJzYWwtdGltZSBub3cpKSkKICAgICAgICAgKHllYXIgKG50aCA1IGRlY29kZWQtdGltZSkpCiAgICAgICAgIChtb250aCAobnRoIDQgZGVjb2RlZC10aW1lKSkKICAgICAgICAgKGRheSAobnRoIDMgZGVjb2RlZC10aW1lKSkKICAgICAgICAgOzsg5pel5LuY44KS5pWw5a2X44Gr44G+44Go44KB44KL77yI5L6L77yaMjAyNTA2MTfvvIkKICAgICAgICAgKGRhdGUtbnVtYmVyICgrICgqIHllYXIgMTAwMDApICgqIG1vbnRoIDEwMCkgZGF5KSkKICAgICAgICAgOzsg5paH5a2X5YiXSUTjga7mloflrZfjgrPjg7zjg4njga7lkIjoqIgKICAgICAgICAgKGNoYXItY29kZXMgKG1hcCAnbGlzdCAjJ2NoYXItY29kZSBpZCkpCiAgICAgICAgIDs7IOOCt+ODvOODiSA9IElE44Gu5paH5a2X44Kz44O844OJ5ZCI6KiIICsg5pel5LuYCiAgICAgICAgIChzZWVkICgrIChyZWR1Y2UgIycrIGNoYXItY29kZXMgOmluaXRpYWwtdmFsdWUgMCkKICAgICAgICAgICAgICAgICAgZGF0ZS1udW1iZXIpKQogICAgICAgICA7OyDntZDmnpzjg6rjgrnjg4gKICAgICAgICAgKHJlc3VsdCAobnRoIChtb2Qgc2VlZCA1KQogICAgICAgICAgICAgICAgICAgICAgJygi5aSn5ZCJ77yB5oyR5oim44KS57aa44GR44KI44GGIgogICAgICAgICAgICAgICAgICAgICAgICAi5Lit5ZCJ77yB5LuK5pel44Gv6ZuG5Lit44Gu5pelIgogICAgICAgICAgICAgICAgICAgICAgICAi5bCP5ZCJ77yB44G+44Ga44Gv5LiA5q2pIgogICAgICAgICAgICAgICAgICAgICAgICAi5ZCJ77yB57KY44KK5Yud44Gh44KS55uu5oyH44Gd44GGIgogICAgICAgICAgICAgICAgICAgICAgICAi5Ye24oCm44Gn44KC5piO5pel44GM44GC44KL77yBIikpKSkKICAgIChmb3JtYXQgdCAifiXml6Xku5jvvJp+NCwnMEQtfjIsJzBELX4yLCcwRH4lIiB5ZWFyIG1vbnRoIGRheSkKICAgIChmb3JtYXQgdCAi57WQ5p6c77yafkF+JSIgcmVzdWx0KSkp