let exit = false; let url = "words"; let maxtries = 7; let input = document.querySelector('input'); let win = document.querySelector('#win'); let hint = document.querySelector('#hint'); let attempt = document.querySelector('#attempt'); let tries = 0; fetch(url) .then(response => response.text()) .then(wordlist => wordlist.split('\n')) .then(wordlist => main(wordlist)); let guessable = [] fetch("guessable") .then(response => response.text()) .then(wordlist => wordlist.split('\n')) .then(function(g){guessable = g;}) function addGuessDisplay(answer, guess, len, hint) { let cat = "" for (var i = 0; i < len; i++) { if (guess.charAt(i) != answer.charAt(i) && !(answer.includes(guess.charAt(i))) ) { cat += '' + guess.charAt(i) + ""; } else if (guess.charAt(i) != answer.charAt(i) && (answer.includes(guess.charAt(i))) ) { cat += '' + guess.charAt(i) + ""; } else if (guess.charAt(i) == answer.charAt(i)) { cat += '' + guess.charAt(i) + ""; } } hint.innerHTML += cat + "
"; } function checkAnswer(event, answer, len, wordlist) { event.preventDefault(); input.value = input.value.toLowerCase(); if (!exit) { if (wordlist.includes(input.value) || guessable.includes(input.value)) { addGuessDisplay(answer, input.value, len, hint); tries++; if (input.value == answer) { win.innerHTML = "You won!"; exit = true; } else { win.innerHTML = "Not quite right!"; } if (tries >= maxtries && !exit) { win.innerHTML = "You lost! Better luck next time!"; exit = true; } attempt.innerHTML = tries + " attempt"; if (tries > 1) { attempt.innerHTML += "s"; } } } } function main(wordlist) { let wordlen = wordlist.length; let randomword = Math.floor(Math.random() * wordlen); let answer = wordlist[randomword]; console.log(answer); let len = answer.length; input.setAttribute("maxlength", len); hint.innerHTML = "Word is of length: " + len + "
"; let form = document.querySelector('form'); form.addEventListener("submit", function() { checkAnswer(event, answer, len, wordlist); }); }