about summary refs log tree commit diff stats
path: root/loot.lsp
diff options
context:
space:
mode:
authorDarren Bane <darren.bane@emdalo.com>2021-01-18 10:00:29 +0000
committerDarren Bane <darren.bane@emdalo.com>2021-01-18 10:00:29 +0000
commit92de5365b2d521da510614f4910bf4926d260b20 (patch)
treedde8a998961217a2bd0c6be93888289a8e9b1f2c /loot.lsp
parent31a933ffe1617cf912dea58b8bb856183f7668f1 (diff)
parente8cd4c31932ee50b72875591ca61730512280fbe (diff)
downloadlsp-92de5365b2d521da510614f4910bf4926d260b20.tar.gz
Merge branch 'master' of tilde.institute:public_repos/lsp
Diffstat (limited to 'loot.lsp')
-rw-r--r--[-rwxr-xr-x]loot.lsp16
1 files changed, 8 insertions, 8 deletions
diff --git a/loot.lsp b/loot.lsp
index 6192dbf..727f8f3 100755..100644
--- a/loot.lsp
+++ b/loot.lsp
@@ -5,16 +5,16 @@
 ;; Because this is a simple enum and not a full sum/product type,
 ;; I use symbols instead of CLOS.
 (defconstant +loot-type+ (vector 'bloodstone 'copper 'emeraldite 'gold
-                           'heronite 'platinum 'shadownite 'silver
+                           'heronite 'platinum 'shaownite 'silver
                            'soranite 'umbrarite 'cobalt 'iron
                            'nothing))
 (defclass <looter> () ((probabilities :accessor probabilities)))
 (defgeneric choose (self))
 (defmethod choose ((self <looter>))
   (let ((random-value (random (- +max-probability+ 1))))
-    (do ((loop 0 (+ loop 1)))
-        ((>= (elt (probabilities self) (mod loop 13)) random-value) (elt +loot-type+ (mod loop 13))))))
-(defmethod initialize-instance :after ((self <looter>) &rest initargs)
+    (for ((loop 0 (+ loop 1)))
+	((>= (elt (probabilities self) (mod loop 13)) random-value) (elt +loot-type+ (mod loop 13))))))
+(defmethod initialize-object :after ((self <looter>) initargs)
   (setf (probabilities self) (vector 10 77 105 125 142 159 172 200 201 202 216 282 +max-probability+)))
 (defun as-string (l)
   ;; Could use assoc here, but this is closer to the original.
@@ -34,8 +34,8 @@
     ((iron) "Iron")
     (t "")))
 (defun main ()
-  (let ((loot (make-instance (find-class '<looter>))))
-    (do ((n 0 (+ n 1)))
-      ((> n 99))
-      (format *standard-output* "~A~%" (as-string (choose loot))))))
+  (let ((loot (create (class <looter>))))
+    (for ((n 0 (+ n 1)))
+	((> n 99))
+	(format (standard-output) "~A~%" (as-string (choose loot))))))
 (main)