;; AI Final Project ;; Module: L-Systems ;; CSC 466 - Graci ;; Jacob Peck - 20110313 (defclass lsys () ( (rules :accessor lsys-rules :initarg :rules :initform '()) ;rules is a list of the form ((symbol rewrite rewrite) (symbol rewrite) ...) (generation :accessor lsys-generation :initarg :generation :initform 0) (data :accessor lsys-data :initarg :data :initform '()) ) ) (defmethod make-lsys ((rules list) (seed list)) (make-instance 'lsys :rules rules :data seed) ) (defmethod iterate-lsys ((sys lsys) &aux data newdata rules) (setf rules (lsys-rules sys)) (setf data (lsys-data sys)) (setf newdata '()) (dolist (element data NIL) (dolist (rule rules NIL) (cond ((eq element (car rule)) (setf newdata (append newdata (cdr rule))) (return NIL) ) ) ) ) (setf (lsys-data sys) newdata) (setf (lsys-generation sys) (+ (lsys-generation sys) 1)) NIL ) (defmethod visualize-lsys ((sys lsys)) (format t "Generation ~A: ~A" (lsys-generation sys) (lsys-data sys)) (terpri) NIL )