turtle.lisp 480 B

1234567891011121314151617181920
  1. (in-package :tartlet)
  2. (defclass/std turtle ()
  3. ((coords :std t)
  4. (angle :std 0)
  5. (turtle-color :std 0)
  6. (pen-down-p :std t))) ; t - down, nil - up
  7. (defmethod left ((turtle turtle) (angle number))
  8. (incf (angle turtle) (d->r angle)))
  9. (defmethod right ((turtle turtle) (angle number))
  10. (decf (angle turtle) (d->r angle)))
  11. (defun pen-up (turtle)
  12. (setf (pen-down-p turtle) nil))
  13. (defun pen-down (turtle)
  14. (setf (pen-down-p turtle) t))