From e9fc63b3814daa727bbc6bd0152b3b2917ae7ae1 Mon Sep 17 00:00:00 2001 From: pommicket Date: Wed, 11 Jan 2017 22:25:12 -0500 Subject: Added word length option to Anagram Game --- all.html | 12 ++++++------ anagramgame.html | 17 +++++++++++++---- games.html | 8 ++++++++ js/anagramgame.js | 51 ++++++++++++++++++++++++++++++++++++++------------- 4 files changed, 65 insertions(+), 23 deletions(-) diff --git a/all.html b/all.html index 22ee41f..23c7bac 100644 --- a/all.html +++ b/all.html @@ -24,7 +24,7 @@ can be found here. - +
@@ -58,15 +58,15 @@ can be found here.
- +
- - + +

@@ -75,7 +75,7 @@ the frequencies of trigrams.
- +

@@ -270,7 +270,7 @@

- Find an anagram of a random 7-letter word. + Find an anagram of a random word.
diff --git a/anagramgame.html b/anagramgame.html index 9d415c2..60cffb0 100644 --- a/anagramgame.html +++ b/anagramgame.html @@ -13,10 +13,17 @@

The word list can be found here.

Loading word list...
-
+
+
+
+ + Find an anagram of a random word. +
+
+ diff --git a/js/anagramgame.js b/js/anagramgame.js index c50c403..b1ad100 100644 --- a/js/anagramgame.js +++ b/js/anagramgame.js @@ -1,5 +1,6 @@ var words = []; var word; +var length; var anagram; var alphabet = "qwertyuiopasdfghjklzxcvbnm"; var letters = alphabet + alphabet.toUpperCase(); @@ -51,6 +52,7 @@ function findWord() { var numWords = words.length; word = words[Math.floor(Math.random()*numWords)]; + console.log(words.length); if (containsSymbols(word)) findWord(); var lc = letterCounts(word); @@ -67,16 +69,24 @@ function findWord() function play() { - $("#hidden").attr("style", "visibility: hidden;"); - $("#again").attr("style", "visibility: hidden;"); - $("#answer").attr("style", "visibility: hidden;"); + length = $("#length").val(); + loadWords(); + +} + + +function showWord() +{ + $("#inputs").hide(); + $("#again").hide(); + $("#answer").hide(); $("#guess").val(""); $("#loading").html("Finding a word with an anagram..."); findWord(); $("#loading").html(""); $("#word").html("Find an anagram of " + word + "."); - $("#hidden").attr("style", ""); - + $("#inputs").show(); + $("#guess").focus(); } function isWord(x) @@ -86,6 +96,11 @@ function isWord(x) function loadWords() { + if (length < 2 || length > 18) + { + $("#error").text("Word length must be 2-18."); + return; + } var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { @@ -95,10 +110,10 @@ function loadWords() words = []; for (var i = 0; i < allwords.length; i++) { - if (allwords[i].length == 7) + if (allwords[i].length == length) words.push(allwords[i].toLowerCase()); } - play(); + showWord(); } }; xhttp.open("GET", "https://raw.githubusercontent.com/sindresorhus/word-list/master/words.txt", true); @@ -107,27 +122,37 @@ function loadWords() function submit() { + if ($("#again").is(":visible")) + { + play(); + return; + } var guess = $("#guess").val().toLowerCase(); if (guess != word && letterCounts(guess).equals(letterCounts(word)) && isWord(guess)) { - $("#answer").attr("style", ""); + $("#answer").show(); $("#answer").html("Correct!"); - $("#again").attr("style", ""); + $("#again").show(); } else { - $("#answer").attr("style", ""); + $("#answer").show(); $("#answer").html("Incorrect!"); } } function giveUp() { - $("#answer").attr("style", ""); + $("#answer").show(); $("#answer").html("The answer was " + anagram + "."); - $("#again").attr("style", ""); + $("#again").show(); } -loadWords(); + +$("#again").hide(); +$("#answer").hide(); +$("#guess").val(""); +$("#loading").hide(); +$("#guess").show(); -- cgit v1.2.3