#!/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

