juego de ahorcado en javascript

Me he encontrado con algunos problemas en mi asignación de verdugo de JavaScript / jQuery y parece que no puedo entender cuál es el problema: en primer lugar, los espacios no parecen mostrarse para indicar los espacios de palabras cuando toco un nuevo juego (aunque está eligiendo una palabra al azar y la función randomWord() parece funcionar normalmente). Está mostrando las palabras incorrectas que he elegido, pero además de no mostrar los espacios y las letras correctas en esos espacios, no está “parpadeando” (desapareciendo y desapareciendo el color de fondo del rojo) cuando elijo una letra incorrecta y no borro el cuadro de entrada después de ingresar una palabra (finalmente logré que comenzara a avanzar las imágenes del verdugo cuando elegí una letra incorrecta). Estoy atascado en este punto y cualquier ayuda que me señale en la dirección correcta sería muy apreciada (todavía tengo mucho trabajo por hacer en cuanto a su aspecto y especificaciones de asignación, pero tengo que hacerlo funcionar primero).

mi código: J Query / JavaScript:

 var wordBank=["modernism", "situationalist", "sartre", "camus", "hegel", "lacan", "barthes", "baudrillard", "foucault", "debord", "baudrillard"]; var word=[]; var wrongGuesses=[]; var rightGuesses=[]; var images = [gallows, head, body, armL, handL, armR, handR, legL, footL, legR, footR]; var y = 0; var i = 1; $(document).ready(function(){ //choose a random word from the wordBank {like challenge12}-generate a random# for arrayIndex, apply to array, convert to string & split the word for use in game function randomWord(){ var random = Math.floor(Math.random() * wordBank.length); var toString = wordBank[random]; console.log(toString); word=toString.split(""); console.log(word); } randomWord(); //create spaces, append a div to use for gameplay w/the spaces function wordSpaces(){ var letterSpace = ""; for (var i = 0; i < word.length; i++){ $(".word-spaces").append(letterSpace + "
" ) } } wordSpaces(); function startPlay(space) { //indexOf()==inArray() var lIndex = jQuery.inArray(space, word); if(lIndex == -1){ wrongGuesses.push(space); $(".wrongLetters p").append(space + " "); $(this).css("background-color", "#ff4500").fadeIn('fast').delay(800).fadeOut('fast'); $(images[i - 1]).hide(); $(images[i]).show(); i++; } else { $("word-spaces > div:nth-of-type(" + (lIndex + 1) + ")").text(space); rightGuesses.push(space); } } //keycode function I found online for taking keyboard input $(".form-control").keypress(function (event){ var keycode = (event.keyCode ? event.keyCode : event.which); if(keycode == 13) { var space = $(this).val(); startPlay(space); $(this).val(''); endGame(); return false; } }); function endGame(){ if(wrongGuesses.length >= 10 || rightGuesses.length == word.length){ $("body").css("background-color", "#ff4500"); $(".form-control").prop('disabled', true); } } });

HTML:

  

Your word is:

Please Guess a Letter:



Wrong letters you've already guessed:

Verdugo

Lo tengo funcionando, haré un desglose rápido de lo que tiene y lo que necesita para terminar usted mismo:

Reflejos

  • .words-spaces es una tabla dinámica. Genera un

    para cada letra de la palabra. Cada letra también se coloca dentro de su

    , pero no son visibles porque comienzan en blanco (igual que en el fondo). Como precaución adicional, agregué user-select: none para que los usuarios no puedan hacer trampas al resaltar

    .

  • .wrongLetter es una tabla con 10

    ya que esa es la cantidad máxima de conjeturas erróneas antes de endGame() .

  • La porción de pulsación de tecla no funcionaría porque llamaba a la función gamePlay(space) que no existía.

  • Hubo un par de lugares que también tenían selectores mal formados (por ejemplo, faltan puntos en las clases)

Que hacer

  • No puede manejar múltiples apariciones de una letra (por ejemplo, reconocerá la primera “l” en la palabra baudri ll ard e ignorará la segunda “l” ).

  • Hmmm … pensé que había más que eso. Supongo que no…

Hay un violín y un fragmento, diviértanse.

     35387864     

Hangman

Your Word is:

Guess a Letter
Letters Guessed Wrong: