#!/bin/bash
# Skrypt states - prosta gra w odgadywanie nazw stolic państw.
# Potrzebny jest plik stolice.txt, dostępy pod adresem www.helion.pl.

db="/usr/lib/games/stolice.txt"     # Format danych: pańśtwo[spacja]stolica.

if [ ! -r "$db" ] ; then
  echo "$0: nie można otworzyć pliku $db do odczytu." >&2
  echo "(Pobierz plik stolice.txt ze strony www.helion.pl," >&2
  echo "zapisz jako $db i gotowe!!)" >&2
  exit 1
fi

guesses=0; correct=0; total=0

while [ "$guess" != "koniec" ] ; do
  
  thiskey="$(randomquote $db)"
  
  # Zmienna $thiskey zawiera wylosowany wiersz. Wyodrębniamy z niego
  # nazwę państwa i stolicy. Zmienna $match zawiera nazwę stolicy
  # napisaną małymi literami.

  state="$(echo $thiskey | cut -d\   -f1 | sed 's/-/ /g')"
  city="$(echo $thiskey | cut -d\   -f2 | sed 's/-/ /g')"
  match="$(echo $city | tr '[:upper:]' '[:lower:]')"

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

  echo ""
  echo "Jaka jest stolica państwa $state?"

  # Główna pętla, w której wykonywane są wszystkie operacje. Wykonywana
  # do chwili wpisania przez gracza poprawnej nazwy stolicy lub słowa "dalej"
  # powodującego wybranie innego państwa, lub słowa "koniec" powodującego
  # zakończenie gry.

  while [ "$guess" != "$match" -a "$guess" != "dalej" -a "$guess" != "koniec" ]
  do
    echo -n "Odpowiedź: "
    read guess

    if [ "$guess" = "$match" -o "$guess" = "$city" ] ; then
      echo ""
      echo "*** Prawidłowa odpowiedź! Brawo! ***"
      correct=$(( $correct + 1 ))
      guess=$match
    elif [ "$guess" = "dalej" -o "$guess" = "koniec" ] ; then
      echo ""
      echo "Stolicą państwa $state jest $city."  # To powinien gracz wiedzieć.
    else
      echo "Niestety, to jest błędna odpowiedź."
    fi 
  done

done

echo "Liczba odpowiedzi: $total, w tym poprawnych: $correct."
exit 0
