#!/bin/bash
# Autor:        2008 Lukas Gantert admin@nofalab.ch http://www.nofalab.ch_
# Zweck:        ein kleines Tastatur-tipp-Lernspiel
# Lizenz:       GPL http://www.gnu.org/licenses/gpl.html
# Todo:         integrieren: Charset waehlbar, ...

echo "exit with Control-C
"

LENGTH=${1-5}

MATRIX="\
abcdefghiklmnopqrstuvwxyz\
ABCDEFGHIKLMNOPQRSTUVWXYZ\
éàèöäüïâîêôûç\
éàèöäüïâîêôûç\
ÉÀÈÖÜÄÏÂÎÛÊÔÇ\
ÉÀÈÖÜÄÏÂÎÛÊÔÇ\
1234567890\
++++---***//////////\
'''''´´´´´``````########$$$$$$$$\
{{{{{}{{{}}}}}}}[[[[[[[]]]]]]][](((((((())))))))\
||||||||||||||%%%%%%&&&&&&&=======?????°°\
@@@@@<<<<>>>>___:::...,,,;;;|||||||"

STRING () {
   n=1
   PASS=
   # Random password generator for Bash 2.x by Antek Sawicki, modified by LG
   while [ "$n" -le "$LENGTH" ]; do
      PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
      n=$(( n + 1 ))
   done
}

PRINT () {
   printf "type:\n\033[32m%s\033[0m\n" "$PASS"
}

READ () {
   read STRING_TYPED
}

TEST () {
   if [[ $PASS = $STRING_TYPED ]] ; then
      echo -en "\033[32mBravo !\n\n\033[0m"
      STRING
      PRINT
      READ
      TEST
   else
      echo -en "\a\033[31maiiooh !\n\n\033[0magain, "
      PRINT
      READ
      TEST
   fi
}

STRING
PRINT
READ
TEST