Add row at specific point in div

I am making a small hang man style game in HTML and I am trying to click on a letter that the user correctly guessed wherever he was in div. Here is what I still have:

var words = ['dog', 'mouse', 'horse', 'fossil', 'christmas', 'mountain', 'javascript', 'glitter', 'pringles', 'connect'];
var output = "";
var gRand = "";
var gWordAry = "";
function startGame() {
    var rand = words[Math.floor(Math.random() * words.length)]; //gets a random word from the array, stores as rand
    var wordAry = rand.split(''); //splits random word into its own array and each letter is in the array
    gRand = rand; //stores random word as global var
    gWordAry = wordAry;
    alert(wordAry);
    $('#hangmanGame').show();
    $('#startBtn').hide();
    //alert(rand);
    for (i = 0; i < wordAry.length; i++) { //draws a dash for every letter in the random word array after split
        //draw canvas dash
        output += ' _ ';
        $('#wordGuess').html(output);
    }


    //alert(output);


}

function guess(letter) {
    var letterID = letter.toLowerCase(); //converts letter to lowercase from html
    //alert(letterID);
    var foundLetter = 0;
    for (i=0;i<gWordAry.length; i++){
        if (gWordAry[i] == letterID){ //if a letter in the word array = the letter clicked this will run
            //alert('correct');
            foundLetter++;
            displayLetter(letterID);
        }
    }
    if (foundLetter == 0){ //if no letters in the array are found this will run
        alert('Try Again');
    }

}

function displayLetter(letterID){
    //displays all letters in the word
    $('#wordGuess').append(letterID)
}

HTML:

<div id="hangmanGame">
    <div id="wordGuess">  </div>  //THIS IS THE DIV WHERE THE LETTERS ARE GOING
    <table style="margin: auto;position: relative;top: 500px;">
        <tr> 
            <td><button class="alphabet" type="button"> </button></td>
            <td> <button type="button" onclick="guess('A')" id="1" class="alphabet">A </button></td> 
            <td> <button type="button" onclick="guess('B')" id="2" class="alphabet">B </button></td>
            <td> <button type="button" onclick="guess('C')" id="3" class="alphabet">C </button></td>
            <td> <button type="button" onclick="guess('D')" id="4" class="alphabet">D </button></td>
            <td> <button type="button" onclick="guess('E')" id="5" class="alphabet">E </button></td>
            <td> <button type="button" onclick="guess('F')" id="6" class="alphabet">F </button></td>
            <td> <button type="button" onclick="guess('G')" id="7" class="alphabet">G </button></td>
            <td> <button type="button" onclick="guess('H')" id="8" class="alphabet">H </button></td>
            <td> <button class="alphabet" type="button"> </button></td></tr>
        <tr> 
            <td> <button class="alphabet" type="button"> </button></td>
            <td> <button type="button" onclick="guess('I')" id="9" class="alphabet">I </button></td>
            <td> <button type="button" onclick="guess('J')" id="10" class="alphabet">J </button></td>
            <td> <button type="button" onclick="guess('K')" id="11" class="alphabet">K </button></td>
            <td> <button type="button" onclick="guess('L')" id="12" class="alphabet">L </button></td>
            <td> <button type="button" onclick="guess('M')" id="13" class="alphabet">M </button></td>
            <td> <button type="button" onclick="guess('N')" id="14" class="alphabet">N </button></td>
            <td> <button type="button" onclick="guess('O')" id="15" class="alphabet">O </button></td>
            <td> <button type="button" onclick="guess('P')" id="16" class="alphabet">P </button></td>
            <td><button class="alphabet" type="button"> </button></td></tr>
        <tr> <td> <button type="button" onclick="guess('Q')" id="17" class="alphabet">Q </button></td>
            <td> <button type="button" onclick="guess('R')" id="18" class="alphabet">R </button></td>
            <td> <button type="button" onclick="guess('S')" id="19" class="alphabet">S </button></td>
            <td> <button type="button" onclick="guess('T')" id="20" class="alphabet">T </button></td>
            <td> <button type="button" onclick="guess('U')" id="21" class="alphabet">U </button></td>
            <td> <button type="button" onclick="guess('V')" id="22" class="alphabet">V </button></td>
            <td> <button type="button" onclick="guess('W')" id="23" class="alphabet">W </button></td>
            <td> <button type="button" onclick="guess('X')" id="24" class="alphabet">X </button></td>
            <td> <button type="button" onclick="guess('Y')" id="25" class="alphabet">Y </button></td>
            <td> <button type="button" onclick="guess('Z')" id="26" class="alphabet">Z </button></td> </tr>
    </table>
</div>

The code may be a little dirty. I am new to coding. Can anyone help? What I have adds a letter to the end _.

+4
source share
6 answers

Here is the working version of the game :)

replaceAt function taken from here

var words = ['dog'];
var output = "";
var gRand = "";
var gWordAry = "";

function startGame() {
  var rand = words[Math.floor(Math.random() * words.length)]; //gets a random word from the array, stores as rand
  var wordAry = rand.split(''); //splits random word into its own array and each letter is in the array
  gRand = rand; //stores random word as global var
  gWordAry = wordAry;
  alert(wordAry);
  $('#hangmanGame').show();
  $('#startBtn').hide();
  //alert(rand);
  for (i = 0; i < wordAry.length; i++) { //draws a dash for every letter in the random word array after split
    //draw canvas dash
    output += ' _ ';
    $('#wordGuess').html(output);
  }


  //alert(output);


}
currentIndex = 0
function guess(letter) {
  var letterID = letter.toLowerCase(); //converts letter to lowercase from html
  //alert(letterID);
  var foundLetter = 0;
  for (i = 0; i < gWordAry.length; i++) {
    if (gWordAry[i] == letterID && gWordAry[i] !== '_') { //if a letter in the word array = the letter clicked this will run
      //alert('correct');
      if (currentIndex == i){
      foundLetter++;
      gWordAry[i] = '_'
      displayLetter(letterID, currentIndex++);
        
      break;
        }
    }
  }
  if (foundLetter == 0) { //if no letters in the array are found this will run
    alert('Try Again');
  }

}
String.prototype.replaceAt = function(index, character) {
  return this.substr(0, index) + character + this.substr(index + character.length);
}

function displayLetter(letterID,i) {
  //displays all letters in the word
  var toReplace = $('#wordGuess').html();


 $('#wordGuess').html($('#wordGuess').html().replaceAt($('#wordGuess').html().indexOf('_'), letterID))
}
startGame()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="hangmanGame">
  <div id="wordGuess"></div>
  <table style="margin: auto;position: relative;top: 10px;">
    <tr>
      <td>
        <button class="alphabet" type="button"></button>
      </td>
      <td>
        <button type="button" onclick="guess('A')" id="1" class="alphabet">A</button>
      </td>
      <td>
        <button type="button" onclick="guess('B')" id="2" class="alphabet">B</button>
      </td>
      <td>
        <button type="button" onclick="guess('C')" id="3" class="alphabet">C</button>
      </td>
      <td>
        <button type="button" onclick="guess('D')" id="4" class="alphabet">D</button>
      </td>
      <td>
        <button type="button" onclick="guess('E')" id="5" class="alphabet">E</button>
      </td>
      <td>
        <button type="button" onclick="guess('F')" id="6" class="alphabet">F</button>
      </td>
      <td>
        <button type="button" onclick="guess('G')" id="7" class="alphabet">G</button>
      </td>
      <td>
        <button type="button" onclick="guess('H')" id="8" class="alphabet">H</button>
      </td>
      <td>
        <button class="alphabet" type="button"></button>
      </td>
    </tr>
    <tr>
      <td>
        <button class="alphabet" type="button"></button>
      </td>
      <td>
        <button type="button" onclick="guess('I')" id="9" class="alphabet">I</button>
      </td>
      <td>
        <button type="button" onclick="guess('J')" id="10" class="alphabet">J</button>
      </td>
      <td>
        <button type="button" onclick="guess('K')" id="11" class="alphabet">K</button>
      </td>
      <td>
        <button type="button" onclick="guess('L')" id="12" class="alphabet">L</button>
      </td>
      <td>
        <button type="button" onclick="guess('M')" id="13" class="alphabet">M</button>
      </td>
      <td>
        <button type="button" onclick="guess('N')" id="14" class="alphabet">N</button>
      </td>
      <td>
        <button type="button" onclick="guess('O')" id="15" class="alphabet">O</button>
      </td>
      <td>
        <button type="button" onclick="guess('P')" id="16" class="alphabet">P</button>
      </td>
      <td>
        <button class="alphabet" type="button"></button>
      </td>
    </tr>
    <tr>
      <td>
        <button type="button" onclick="guess('Q')" id="17" class="alphabet">Q</button>
      </td>
      <td>
        <button type="button" onclick="guess('R')" id="18" class="alphabet">R</button>
      </td>
      <td>
        <button type="button" onclick="guess('S')" id="19" class="alphabet">S</button>
      </td>
      <td>
        <button type="button" onclick="guess('T')" id="20" class="alphabet">T</button>
      </td>
      <td>
        <button type="button" onclick="guess('U')" id="21" class="alphabet">U</button>
      </td>
      <td>
        <button type="button" onclick="guess('V')" id="22" class="alphabet">V</button>
      </td>
      <td>
        <button type="button" onclick="guess('W')" id="23" class="alphabet">W</button>
      </td>
      <td>
        <button type="button" onclick="guess('X')" id="24" class="alphabet">X</button>
      </td>
      <td>
        <button type="button" onclick="guess('Y')" id="25" class="alphabet">Y</button>
      </td>
      <td>
        <button type="button" onclick="guess('Z')" id="26" class="alphabet">Z</button>
      </td>
    </tr>
  </table>
</div>
Run codeHide result
+3
source

, , , div, displayLetter, , #wordGuess, , , #wordGuess.

+1

, , , , :

for (i = 0; i < wordAry.length; i++) { //draws a dash for every letter in the random word array after split
    //draw canvas dash
    output += "<span id='letter" + i + "'>_</span>";
}
$('#wordGuess').html(output);

, , , , :

for (i = 0; i < gWordAry.length; i++) {
    if (gWordAry[i] === letterID) { //if a letter in the word array = the letter clicked this will run
        foundLetter++;
        displayLetter(letterID, i);
    }
}

displayLetter, . , , :

function displayLetter(letterID, index) {
    //displays all letters in the word
    $('#letter' + index).text(letterID);
}
+1

, , .

var answer = 'banana';
var state = '______';

function showLetter(letter, answer, state) {
  var lastPos = -1;

  while (answer.indexOf(letter, lastPos + 1) !== -1) {
    var position = answer.indexOf(letter, lastPos + 1);
    lastPos = position;
    state[position] = 'letter';
    state = state.substr(0, position)
      + letter
      + state.substr(position + 1);
  }

  return state;
}

letter, answer state ( ) , DOM . : document.getElementById('wordGuess').innerHTM

JSbin, .

+1

@c-smith, ...

.

for (i = 0; i < wordAry.length; i++) { //draws a dash for every letter in the random word array after split
                //draw canvas dash
                output += "<span class='letter" + wordAry[i] + "'> _ </span>";
                $('#wordGuess').html(output);
            }

displayLetter

function displayLetter(letterID){
            //displays all letters in the word
            $(".letter"+letterID).html(letterID);
            // return the number of letters found.
            return $(".letter"+letterID).length;
        }

guess .

function guess(letter) {
            var letterID = letter.toLowerCase(); //converts letter to lowercase from html
            //alert(letterID);
            var foundLetter = displayLetter(letterID);
            if (foundLetter == 0){ //if no letters in the array are found this will run
                alert('Try Again');
            }

        }

.. .

+1

, .

var words = ['dog', 'mouse', 'horse', 'fossil', 'christmas', 'mountain', 'javascript', 'glitter', 'pringles', 'connect'];
        var output = "";
        var gRand = "";
        var gWordAry = "";
        function startGame() {
            var rand = words[Math.floor(Math.random() * words.length)]; //gets a random word from the array, stores as rand
            var wordAry = rand.split(''); //splits random word into its own array and each letter is in the array
            gRand = rand; //stores random word as global var
            gWordAry = wordAry;
            alert(wordAry);
            $('#hangmanGame').show();
            $('#startBtn').hide();
            //alert(rand);
            for (i = 0; i < wordAry.length; i++) { //draws a dash for every letter in the random word array after split
                //draw canvas dash
                output += '_';
                
            }
          $('#wordGuess').html(output);


            //alert(output);


        }

function guess(letter) {
            var letterID = letter.toLowerCase(); //converts letter to lowercase from html
            //alert(letterID);
            var foundLetter = 0;
            for (i=0;i<gWordAry.length; i++){
                if (gWordAry[i] == letterID){ //if a letter in the word array = the letter clicked this will run
                    //alert('correct');
                    foundLetter++;
                    displayLetter(i);
                }
            }
            if (foundLetter == 0){ //if no letters in the array are found this will run
                alert('Try Again');
            }

        }

        function displayLetter(letterID){
            //displays all letters in the word
            //$('#wordGuess').append(letterID)
          //there is no need for the function I mentioned before ..
          var first = $('#wordGuess').text().substring(0,letterID);
          var second = $('#wordGuess').text().substring(letterID+1);
          $('#wordGuess').text(first+gWordAry[letterID]+second)
        }

startGame();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="hangmanGame">
            <div id="wordGuess">  </div>  
            <table style="margin: auto;position: relative;top: 500px;">
                <tr> 
                    <td><button class="alphabet" type="button"> </button></td>
                    <td> <button type="button" onclick="guess('A')" id="1" class="alphabet">A </button></td> 
                    <td> <button type="button" onclick="guess('B')" id="2" class="alphabet">B </button></td>
                    <td> <button type="button" onclick="guess('C')" id="3" class="alphabet">C </button></td>
                    <td> <button type="button" onclick="guess('D')" id="4" class="alphabet">D </button></td>
                    <td> <button type="button" onclick="guess('E')" id="5" class="alphabet">E </button></td>
                    <td> <button type="button" onclick="guess('F')" id="6" class="alphabet">F </button></td>
                    <td> <button type="button" onclick="guess('G')" id="7" class="alphabet">G </button></td>
                    <td> <button type="button" onclick="guess('H')" id="8" class="alphabet">H </button></td>
                    <td> <button class="alphabet" type="button"> </button></td></tr>
                <tr> 
                    <td> <button class="alphabet" type="button"> </button></td>
                    <td> <button type="button" onclick="guess('I')" id="9" class="alphabet">I </button></td>
                    <td> <button type="button" onclick="guess('J')" id="10" class="alphabet">J </button></td>
                    <td> <button type="button" onclick="guess('K')" id="11" class="alphabet">K </button></td>
                    <td> <button type="button" onclick="guess('L')" id="12" class="alphabet">L </button></td>
                    <td> <button type="button" onclick="guess('M')" id="13" class="alphabet">M </button></td>
                    <td> <button type="button" onclick="guess('N')" id="14" class="alphabet">N </button></td>
                    <td> <button type="button" onclick="guess('O')" id="15" class="alphabet">O </button></td>
                    <td> <button type="button" onclick="guess('P')" id="16" class="alphabet">P </button></td>
                    <td><button class="alphabet" type="button"> </button></td></tr>
                <tr> <td> <button type="button" onclick="guess('Q')" id="17" class="alphabet">Q </button></td>
                    <td> <button type="button" onclick="guess('R')" id="18" class="alphabet">R </button></td>
                    <td> <button type="button" onclick="guess('S')" id="19" class="alphabet">S </button></td>
                    <td> <button type="button" onclick="guess('T')" id="20" class="alphabet">T </button></td>
                    <td> <button type="button" onclick="guess('U')" id="21" class="alphabet">U </button></td>
                    <td> <button type="button" onclick="guess('V')" id="22" class="alphabet">V </button></td>
                    <td> <button type="button" onclick="guess('W')" id="23" class="alphabet">W </button></td>
                    <td> <button type="button" onclick="guess('X')" id="24" class="alphabet">X </button></td>
                    <td> <button type="button" onclick="guess('Y')" id="25" class="alphabet">Y </button></td>
                    <td> <button type="button" onclick="guess('Z')" id="26" class="alphabet">Z </button></td> </tr>
            </table>
        </div>
Hide result
0

Source: https://habr.com/ru/post/1664574/


All Articles