#!/bin/bash
# Skrypt unscramble wybierający losowe słowo z listy, przestawiający w nim litery
# i oczekujący od użytkownika odgadnięcia oryginalnego brzmienia.

wordlib="/usr/lib/games/lista-słów.txt"

scrambleword()
{
  # Wybranie losowego słowa z pliku i przestawienie w nim liter.
  # Oryginalne słowo jest zapisywane w zmiennej $match,
  # a zmienione - w zmiennej $scrambled.

  match="$(randomquote $wordlib)"

  echo "Słowo wylosowane!"

  len=$(echo $match | wc -c | sed 's/[^[:digit:]]//g')
  scrambled=""; lastval=1

  for (( val=1; $val < $len ; )) 
  do
    if [ $(($RANDOM % 2)) -eq 1 ] ; then
      scrambled=$scrambled$(echo $match | cut -c$val)
    else
      scrambled=$(echo $match | cut -c$val)$scrambled
    fi
    val=$(( $val + 1 ))
  done
}

if [ ! -r $wordlib ] ; then
  echo "$0: brak pliku '$wordlib' ze słowami." >&2
  echo "(Pobierz ze strony www.helion.pl," >&2
  echo "zapisz jako '$wordlib' i gotowe!)" >&2
  exit 1
fi

newgame=""; guesses=0; correct=0; total=0 

until [ "$guess" = "koniec" ] ; do

  scrambleword

  echo ""
  echo "Odgadnij słowo '$scrambled'."

  guess="??" ; guesses=0
  total=$(( $total + 1 ))

  while [ "$guess" != "$match" -a "$guess" != "koniec" -a "$guess" != "dalej" ] 
  do
    echo ""
    echo -n "Podaj słowo (koniec|dalej): "
    read guess
 
    if [ "$guess" = "$match" ] ; then
      guesses=$(( $guesses + 1 ))
      echo ""
      echo "*** Odgadłeś za ${guesses} razem! Gratulacje! ***"  
      echo ""
      correct=$(( $correct + 1 ))
    elif [ "$guess" = "dalej" -o "$guess" = "koniec" ] ; then
      echo "Odgadywane słowo: '$match'. Liczba prób: $guesses."
    else
      echo "Błędna odpowiedź. Spróbuj jeszcze raz."
      guesses=$(( $guesses + 1 ))
    fi
  done
done

echo "Koniec. Wylosowanych słów: $total, odgadłeś: $correct."

exit 0
