#!/bin/bash
################################################################
# Programma parlante per interrogare i pargoli sulle tabelline #
################################################################
# limite superiore per i due numeri estratti (estremi compresi)
LIMITE_INF_N1=3
LIMITE_SUP_N1=9
LIMITE_INF_N2=3
LIMITE_SUP_N2=9
function clearscreen {
clear
echo " _______ _ _ _ _"
echo " |__ __| | | | | (_)"
echo " | | __ _| |__ ___| | |_ _ __ ___"
echo " | |/ _\` | '_ \\ / _ \\ | | | '_ \\ / _ \\"
echo " | | (_| | |_) | __/ | | | | | | __/"
echo " |_|\__,_|_.__/ \\___|_|_|_|_| |_|\\___|"
echo
}
# numero di domande che sono poste
N_DOMANDE=$1
if [ "$N_DOMANDE" == "" ]; then
N_DOMANDE=50
echo "Parametro non presente: numero di domande = $N_DOMANDE"
fi
giusti=0
sbagliati=0
clearscreen
espeak -v it "Inizio del test... saranno fatte $N_DOMANDE domande... pronti... via"
t_tot_netto=0
for i in $(seq 1 $N_DOMANDE); do
clearscreen
n1=$(($RANDOM % (1 + $LIMITE_SUP_N1 - $LIMITE_INF_N1) + $LIMITE_INF_N1))
n2=$(($RANDOM % (1 + $LIMITE_SUP_N2 - $LIMITE_INF_N2) + $LIMITE_INF_N2))
r=$(echo "$n1*$n2" | bc)
echo
echo "domanda $i su $N_DOMANDE"
espeak -v it "domanda $i"
echo "$n1 x $n2"
espeak -v it "$n1 per $n2"
# lettura della risposta
t0=$(date +%s)
risposta=""
while [ "$risposta" == "" ]; do
read risposta
done
t1=$(date +%s)
t_tot_netto=$(($t_tot_netto + ($t1 - t0)))
# test e conteggio giuste vs sbagliate
if [ "$risposta" -eq "$r" ]; then
espeak -v it "giusto"
giusti=$(echo "$giusti + 1" | bc)
else
echo "SBAGLIATO, la risposta giusta era $r"
espeak -v it "$risposta... è sbagliato... la risposta giusta... èra"
sbagliati=$(echo "$sbagliati + 1" | bc)
fi
espeak -v it $r
done
t_medio=$(echo "$t_tot_netto/$N_DOMANDE" | bc)
perc=$(echo "100 * $giusti / $N_DOMANDE" | bc)
espeak -v it "Il test è finito!"
echo
echo "VERIFICA FINITA"
echo "$giusti risposte giuste"
espeak -v it "$giusti... risposte giuste"
echo "$sbagliati risposte sbagliate"
espeak -v it "$sbagliati... risposte sbagliate"
echo "$perc % di risposte giuste"
espeak -v it "$perc percènto di risposte giuste"
echo "media di circa $t_medio secondi per risposta"
espeak -v it "in media... $t_medio secondi per ogni risposta"
sleep 10