106 lines
2.2 KiB
HTML
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>
|