wordle-solver/wordle.htm

106 lines
2.2 KiB
HTML

<!doctype html>
<html>
<head>
<style>
.letter {
padding: 0.1em;
}
.match {
background: lightgreen;
}
.exists {
background: yellow;
}
.notincluded {
color: grey;
}
.log {
padding: 1em;
border: solid;
}
</style>
<script type="text/javascript" src="wordle.js"></script>
<script type="text/javascript">
var words = []
function status(s) {
document.getElementById('status').innerText = s
}
function log(s) {
const elem = document.createElement('p')
elem.innerText = s
document.getElementById('log').appendChild(elem)
}
var valid_words = null;
(() => {
var req = new XMLHttpRequest()
req.open('GET', 'valid-wordle-words.txt')
req.addEventListener('load', e => {
const text = req.responseText
words = text.split('\n').map(line => line.trim())
console.log("found " + words.length+ " words")
status("found " + words.length + " words")
valid_words = gen_all_words_list()
})
req.send()
})();
(() => {
inited = false
window.addEventListener('load', () => {
document.getElementById('init').addEventListener('click', e => {
if (!inited) {
precompute_all()
}
})
document.getElementById('find').addEventListener('click', e => {
const [idx, entropy] = calc_best_word(valid_words)
status("best word is " + words[idx] + " , " + entropy)
log("best word " + words[idx] + " , " + entropy)
})
})
})()
</script>
</head>
<body>
<div class="history" id="history">
<div>
<span class="letter match">W</span>
<span class="letter exists">E</span>
<span class="letter notincluded">A</span>
<span>R</span>
<span>Y</span>
</div>
</div>
<form>
<p>
<input minlength=5 maxlength=5 size=5></input>
</p>
<p>
<input type=button id="init" value="Init search"></input>
<input type=button id="clear" value="Clear history"></input>
<input type=button id="submit" value="Submit word"></input>
<input type=button id="confirm" value="Confirm word"></input>
<input type=button id="find" value="Find best"></input>
</p>
</form>
<div id=status></div>
log:
<div id=log class=log></div>
</body>
</html>