<?php 

//Aufgabe 1

//Bringt ein Wort in das richtige Format
function transformWord($word) {
    $word = str_replace("ä", "AE", $word);
    $word = str_replace("ö", "OE", $word);
    $word = str_replace("ü", "UE", $word);
    $word = str_replace("ß", "SS", $word);
    $word = strtoupper($word);
    return $word;
}

//Maskiert ein Wort mit _
function maskWord($word) {
    $arr = array();
    for ($i = 0; $i < strlen($word); $i++) {
        $arr[] = "_";
    }
    return $arr;
}

function getAllWords() {
    $str = file_get_contents("words-array.php");
    $str = str_replace('"', '', $str);
    $str = str_replace('[', '', $str);
    $str = str_replace(']', '', $str);
    $str = str_replace(';', '', $str);
    return explode(", ", $str);
}

//Aufgabe 2
function getRandomWord() {
    $arr = getAllWords();
    return $arr[array_rand($arr)];
}

// startet die Session und initialisiert das tasks-Array
function initGame()
{
    //session_name(get_current_user() . "hangman");
    //session_start();

    $randword = transformWord(getRandomWord());
    $_SESSION['toGuess'] = $randword;
    $_SESSION['mask'] = maskWord($randword);
    $_SESSION['guessedLetters'] = [];
    $_SESSION['errorCount'] = 0;
    $_SESSION['state'] = 0;
}

//Aufgabe 3
function guessLetter($letter) {
    //convert to uppercase letter
    $letter = strtoupper($letter);
    
    //stop here if the letter is in guessedLetters
    if (in_array($letter, $_SESSION['guessedLetters'])) {
        return;
    }
    
    //Append the guessed letter
    array_push($_SESSION['guessedLetters'], $letter);
    
    //Add the letter to the mask
    $guessword = str_split($_SESSION['toGuess']);
    $newMask = $_SESSION['mask'];
    $wordcontainsletter = false;
    for ($i = 0; $i < count($guessword); $i++) {
        if ($guessword[$i] == $letter) {
            $newMask[$i] = $letter;
            $wordcontainsletter = true;
        }
    }
    $_SESSION['mask'] = $newMask;
    
    //if the guessword doesn't contain the letter increment errorCount
    if (!$wordcontainsletter && $_SESSION['errorCount'] < 10) {
        $_SESSION['errorCount'] = $_SESSION['errorCount'] + 1;
    }
    
    //refresh the state
    if ($_SESSION['errorCount'] > 8) {
        $_SESSION['state'] = 2;
    } else if (!in_array("_", $_SESSION['mask'])) {
        $_SESSION['state'] = 1;
    }
    
    
    
}

?>
