summaryrefslogtreecommitdiff
path: root/examples/speech/pt-fixed_answer.lali
diff options
context:
space:
mode:
authorDaniel Cerqueira <dan.git@lispclub.com>2025-09-03 12:55:14 +0100
committerDaniel Cerqueira <dan.git@lispclub.com>2025-09-03 12:55:14 +0100
commitb18e1682318452372b0d8017f9ffe72db3e890db (patch)
tree635a99a4fe8df0d2d46906e64dcb665f0f53e801 /examples/speech/pt-fixed_answer.lali
parentf3260d01f80a2dd16a095f2c06a3c2e3fb1094ee (diff)
add some *nice* lali scripts
Diffstat (limited to 'examples/speech/pt-fixed_answer.lali')
-rwxr-xr-xexamples/speech/pt-fixed_answer.lali94
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)