(defun fortunecookie ()
(princ "名前または学籍番号を入力:")
(let* ((id (read-line))
;; 日付の取得(年月日)
(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を使った擬似的な初期化)
(state (make-random-state t)))
;; ランダム状態を初期化(簡易的に乱数を飛ばすことでseedを反映)
(dotimes (i (mod seed 100)) (random 100 state))
;; ランダムな結果を取得
(let* ((index (random 5 state))
(result (nth index
'("大吉! 挑戦を続けよう"
"中吉! 今日は集中の日"
"小吉! まずは一歩"
"吉! 粘り勝ちを目指そう"
"凶...でも明日がある!"))))
(format t "結果:~A~%" result))))
(fortunecookie)
KGRlZnVuIGZvcnR1bmVjb29raWUgKCkKICAocHJpbmMgIuWQjeWJjeOBvuOBn+OBr+WtpuexjeeVquWPt+OCkuWFpeWKm++8miIpCiAgKGxldCogKChpZCAocmVhZC1saW5lKSkKICAgICAgICAgOzsg5pel5LuY44Gu5Y+W5b6X77yI5bm05pyI5pel77yJCiAgICAgICAgIChkYXRlIChtdWx0aXBsZS12YWx1ZS1iaW5kIChzZWMgbWluIGhvdXIgZGF5IG1vbnRoIHllYXIpCiAgICAgICAgICAgICAgICAgICAgKGdldC1kZWNvZGVkLXRpbWUpCiAgICAgICAgICAgICAgICAgIChmb3JtYXQgbmlsICJ+NCwnMGR+MiwnMGR+MiwnMGQiIHllYXIgbW9udGggZGF5KSkpCiAgICAgICAgIDs7IOWQjeWJjeOBqOaXpeS7mOOCkue1kOWQiAogICAgICAgICAoY29tYmluZWQgKGNvbmNhdGVuYXRlICdzdHJpbmcgaWQgZGF0ZSkpCiAgICAgICAgIDs7IOaWh+Wtl+OCs+ODvOODieOBruWQiOioiOOBp+OCt+ODvOODieOCkuaTrOS8vOeUn+aIkAogICAgICAgICAoc2VlZCAocmVkdWNlICMnKyAobWFwICdsaXN0ICMnY2hhci1jb2RlIGNvbWJpbmVkKSkpCiAgICAgICAgIDs7IOaWsOOBl+OBhOODqeODs+ODgOODoOeKtuaFi+OCkuS9nOaIkO+8iHNlZWTjgpLkvb/jgaPjgZ/mk6zkvLznmoTjgarliJ3mnJ/ljJbvvIkKICAgICAgICAgKHN0YXRlIChtYWtlLXJhbmRvbS1zdGF0ZSB0KSkpCiAgICA7OyDjg6njg7Pjg4Djg6DnirbmhYvjgpLliJ3mnJ/ljJbvvIjnsKHmmJPnmoTjgavkubHmlbDjgpLpo5vjgbDjgZnjgZPjgajjgadzZWVk44KS5Y+N5pig77yJCiAgICAoZG90aW1lcyAoaSAobW9kIHNlZWQgMTAwKSkgKHJhbmRvbSAxMDAgc3RhdGUpKQogICAgOzsg44Op44Oz44OA44Og44Gq57WQ5p6c44KS5Y+W5b6XCiAgICAobGV0KiAoKGluZGV4IChyYW5kb20gNSBzdGF0ZSkpCiAgICAgICAgICAgKHJlc3VsdCAobnRoIGluZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICcoIuWkp+WQie+8gSDmjJHmiKbjgpLntprjgZHjgojjgYYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIuS4reWQie+8gSDku4rml6Xjga/pm4bkuK3jga7ml6UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIuWwj+WQie+8gSDjgb7jgZrjga/kuIDmrakiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIuWQie+8gSDnspjjgorli53jgaHjgpLnm67mjIfjgZ3jgYYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIuWHti4uLuOBp+OCguaYjuaXpeOBjOOBguOCi++8gSIpKSkpCiAgICAgIChmb3JtYXQgdCAi57WQ5p6c77yafkF+JSIgcmVzdWx0KSkpKQogICAgICAKKGZvcnR1bmVjb29raWUp