From 8c587589b270b9fccba9ce5558b914e931cff033 Mon Sep 17 00:00:00 2001 From: Ted Unangst Date: Wed, 9 Feb 2022 17:12:16 -0500 Subject: [PATCH] more wonk --- views/wonk.js | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 views/wonk.js diff --git a/views/wonk.js b/views/wonk.js new file mode 100644 index 0000000..7346e9d --- /dev/null +++ b/views/wonk.js @@ -0,0 +1,83 @@ +export function addguesscontrols(elem, word, wordlist, xid) { + var host = elem.parentElement + elem.innerHTML = "loading..." + + host.correctAnswer = word + host.guesses = [] + host.xid = xid + var xhr = new XMLHttpRequest() + xhr.open("GET", "/bloat/wonkles?w=" + escape(wordlist)) + xhr.responseType = "json" + xhr.onload = function() { + var wordlist = xhr.response.wordlist + var validguesses = {} + console.log("valid " + wordlist.length) + for (var i = 0; i < wordlist.length; i++) { + validguesses[wordlist[i]] = true + } + host.validGuesses = validguesses + var div = document.createElement( 'div' ); + div.innerHTML = "

" + host.append(div) + elem.remove() + } + xhr.send() +} +export function makeaguess(btn) { + var host = btn.parentElement.parentElement.parentElement + var correct = host.correctAnswer + var valid = host.validGuesses + var inp = btn.previousElementSibling + var g = inp.value.toLowerCase() + var res = "" + if (valid[g]) { + var letters = {} + var obfu = "" + for (var i = 0; i < correct.length; i++) { + var l = correct[i] + letters[l] = (letters[l] | 0) + 1 + } + for (var i = 0; i < g.length && i < correct.length; i++) { + if (g[i] == correct[i]) { + letters[g[i]] = letters[g[i]] - 1 + } + } + for (var i = 0; i < g.length; i++) { + if (i < correct.length && g[i] == correct[i]) { + res += g[i].toUpperCase() + obfu += "🟩" + } else if (letters[g[i]] > 0) { + res += g[i] + obfu += "🟨" + letters[g[i]] = letters[g[i]] - 1 + } else { + obfu += "⬛" + res += "." + } + } + + var div = document.createElement( 'div' ); + div.innerHTML = "

" + res + host.append(div) + host.guesses.push(obfu) + } else { + var div = document.createElement( 'div' ); + div.innerHTML = "

invalid guess" + host.append(div) + } + var div = document.createElement( 'div' ); + if (res == correct.toUpperCase()) { + var mess = "

you are very smart!" + mess += "

" + host.xid + for (var i = 0; i < host.guesses.length; i++) { + mess += "

" + host.guesses[i] + } + div.innerHTML = mess + if (typeof(csrftoken) != "undefined") + post("/zonkit", encode({"CSRF": csrftoken, "wherefore": "wonk", "what": host.xid})) + } else { + div.innerHTML = "

" + } + host.append(div) + btn.parentElement.remove() +}