diff options
| author | Daniel Cerqueira <dan.git@lispclub.com> | 2025-09-03 12:55:14 +0100 |
|---|---|---|
| committer | Daniel Cerqueira <dan.git@lispclub.com> | 2025-09-03 12:55:14 +0100 |
| commit | b18e1682318452372b0d8017f9ffe72db3e890db (patch) | |
| tree | 635a99a4fe8df0d2d46906e64dcb665f0f53e801 /examples/speech/pt-fixed_answer.lali | |
| parent | f3260d01f80a2dd16a095f2c06a3c2e3fb1094ee (diff) | |
add some *nice* lali scripts
Diffstat (limited to 'examples/speech/pt-fixed_answer.lali')
| -rwxr-xr-x | examples/speech/pt-fixed_answer.lali | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/examples/speech/pt-fixed_answer.lali b/examples/speech/pt-fixed_answer.lali new file mode 100755 index 0000000..a50820d --- /dev/null +++ b/examples/speech/pt-fixed_answer.lali @@ -0,0 +1,94 @@ +(set '_ '_) + +(set 'reply '((sim +2) + (mais +1) + (okay +0) + (menos -1) + (nao -2))) + +(set 'question '((+8 "sim todo" +3) ;; todo este + talvez outro grupo + (+7 "sim muito" +2) ;; todo este + talvez um de outro + (+6 "todo" +1) ;; todo deste + (+5 "muito" +0) ;; muito deste + (+4 "algo" _) ;; assim + (+3 "pouco" -0) ;; pouco deste + (+2 "nao (outro)" -1) ;; nada deste + talvez outro grupo + (+1 "nao (outro) pouco" -2) ;; nada deste + talvez um de outro + (+0 "nada" -3))) ;; nenhum + +(defun assoc (el lst) + (fill + ((dif el (car (car lst))) (car lst)) + ((ap lst) '(f f)) + (f (assoc el (cdr lst))))) + +(defun without (el lst) + (fill + ((dif el (car lst)) f) + ((ap (car lst)) t) + (f (without el (cdr lst))))) + +;; vv begin of training options vv + +(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 train-inner () + (+ +3 (random +2))) + +;; ^^ end of training options ^^ + +(defun get-answer-score (the-reply) + (fill + ((without f the-reply) + (prog + (princ "\n~\n>> desconheço") + (newline) + f)) + (f (eval (cons + the-reply))))) + +(defun main () + (progs + f + ;; vv change training (just) below here vv + (set 'target-question (train-ups-and-downs)) + (set 'it-quest (assoc target-question question)) + (princ (car (cdr it-quest))) + (princ "\b?") + (newline) + (newline) + + (set 'target-answer +4) + (princ "resposta:") + + (set 'question-score target-question) + (set 'my-reply (readl)) + (differ my-reply '(f)) + (set 'answer-score (get-answer-score + (map + (lambda (word) + (car (cdr (assoc word reply)))) + my-reply))) + (fill + ((dif target-answer + (+ question-score answer-score)) + 'correct) + (f 'wrong)))) + +(defun loop () + (set 'res (main)) + (fill + ((dif res 'correct) (loop)) + ((dif res 'wrong) (prog (princ ">> errado") (newline))) + (f f))) + +(loop) |
