Alert blocks the page from refreshing, which prevents the canvas element from being drawn

  alert, canvas, javascript, settimeout

In my Hangman game, the Hangman is only displayed at the end of the game. However, I want the canvas element to update after each wrong guessed letter. I have already tried it with a setTimeout(), but I don’t know if I have put it in the right place.

    while (verbleibendeBuchstaben > 0 && anzahlFalschGeraten < anzahlRateVersuche) {
        // Fordere den Spieler zu einem Rateversuch auf
  var rateversuch = prompt("Rate einen Buchstaben oder klicke auf Abbrechen, um das Spiel zu beenden.");
        if (rateversuch === null) { // Spieler hat auf "Abbrechen" geklickt
            break;  // Verlasse die Spielschleife
        }
        else if (rateversuch.length !== 1) {    // Spieler hat mehrere Zeichen eingegeben
            alert("Gib bitte einen einzelnen Buchstaben ein.");
        }
        else {
            // Aktualisiere das Spiel mit dem Rateversuch
            richtigerVersuch=false;
            rateversuch = rateversuch.toUpperCase();
            // Durchlaufe das Ratewort und prüfe auf Treffer
            for (var j = 0; j < wort.length; j++) {
                if (wort[j] === rateversuch && antwortArray[j] === "_") {   // BUG repariert! 2. Bedingung!
                    antwortArray[j] = rateversuch;
                    verbleibendeBuchstaben--;
                    richtigerVersuch = true;
                }
            }
            if (!richtigerVersuch) {
        anzahlFalschGeraten++;
        drawing();
            }
        }
    alert("Aktueller Stand: " + antwortArray.join(" "));
        // Ende der Spielschleife
  }

Source: Ask Javascript Questions

LEAVE A COMMENT