# HG changeset patch # User Steve Losh # Date 1517723509 18000 # Node ID dcf037ea2878d76212bcf41cc1faf19d9e2d73b0 # Parent 203fa16acf7a65afa96a154bb3a8e2873e1cc5e5 Add second loom diff -r 203fa16acf7a -r dcf037ea2878 src/robots/bit-loom.lisp --- a/src/robots/bit-loom.lisp Sat Feb 03 16:25:31 2018 -0500 +++ b/src/robots/bit-loom.lisp Sun Feb 04 00:51:49 2018 -0500 @@ -13,14 +13,31 @@ (defun loom-1 (seed) (let ((depth (random-range-inclusive 16 19))) (flax.looms.001-triangles:loom seed depth "out.pnm" 3000 3000) - `(depth ,depth))) + (format nil "depth ~D" depth))) + +(defun loom-2 (seed) + (let ((ticks (* 1000 (random-range-inclusive 3 8)))) + (flax.looms.002-wobbly-lines:loom seed ticks "out.pnm" 2000 400) + (format nil "~R ticks" ticks))) + +(defparameter *looms* '(loom-1 loom-2)) (defun generate-image (seed) - (prog1 (loom-1 seed) - (pnm-to-png "out.pnm" "out.png"))) + (let* ((loom-index (random (length *looms*))) + (loom (elt *looms* loom-index))) + (pr 'running loom) + (let ((extra (funcall loom seed))) + (pnm-to-png "out.pnm" "out.png") + (values (1+ loom-index) extra)))) (defun random-tweet () - (let* ((seed (random (expt 2 32))) - (parameters (append `(seed ,seed) (generate-image seed)))) - (values (string-upcase (format nil "Loom ~R, ~{~A ~A~^, ~}" 1 parameters)) - "out.png"))) + (let ((seed (random (expt 2 32)))) + (multiple-value-bind (loom-number extra-information) + (generate-image seed) + (values (string-upcase + (format nil "loom ~R, seed ~D~A" + loom-number seed + (if extra-information + (concatenate 'string ", " extra-information) + ""))) + "out.png"))))