(set '_ '_) (set 'question '((+8 "sim todo" +3) (+7 "sim muito" +2) (+6 "todo" +1) (+5 "muito" +0) (+4 "algo" _) (+3 "pouco" -0) (+2 "nao (outro)" -1) (+1 "nao (outro) pouco" -2) (+0 "nada" -3))) (defun assoc (number lst) (fill ((dif number (car (car lst))) (car lst)) ((ap lst) f) (f (assoc number (cdr lst))))) (defun train-ups-and-downs () (random +8)) (defun train-ups () (+ +4 (random +4))) (defun train-downs () (random +4)) (defun train-middle () (+ +2 (random +4))) (defun main () (progs f (set 'target-question (train-ups-and-downs)) (set 'it-quest (assoc target-question question)) (princ (car (cdr it-quest))) (princ "\b?") (not (dif (read) (car (cdr (cdr it-quest))))))) (defun loop () (fill ((main) (prog (princ ">> errado") (newline))) (f (loop)))) (loop)