async function tryit(col, value) {
col.valueAsNumber = value;
col.dispatchEvent(new Event('change'));
submit.click();
await new Promise(resolve => setTimeout(resolve, speed));
var res_text = result.innerText.split(/[ ()%]/)[4];
if (res_text === "Splendid!") {
throw new Error("Finished - Found correct combination");
}
col.score = parseInt(res_text);
return col.score;
}
async function binarySearch(col) {
let start = 0;
let end = 15;
let mid = 7;
let startAccuracy = await tryit(col, start);
let endAccuracy = await tryit(col, end);
let midAccuracy = 0;
var speed = 500;
[rin, bin, gin].forEach(col => { col.valueAsNumber = 7; col.dispatchEvent(new Event('change')); col.score = 0; });
async function tryit(col, value) { col.valueAsNumber = value; col.dispatchEvent(new Event('change')); submit.click(); await new Promise(resolve => setTimeout(resolve, speed)); var res_text = result.innerText.split(/[ ()%]/)[4]; if (res_text === "Splendid!") { throw new Error("Finished - Found correct combination"); } col.score = parseInt(res_text); return col.score; }
async function binarySearch(col) { let start = 0; let end = 15; let mid = 7; let startAccuracy = await tryit(col, start); let endAccuracy = await tryit(col, end); let midAccuracy = 0;
} async function findOptimalCombination() { for (const col of [rin, gin, bin]) { await binarySearch(col); } /* rounding */ for (const col of [rin, gin, bin]) { const mid = col.valueAsNumber; const score = await tryit(col, mid); const left = await tryit(col, mid - 1); if (score >= left) { const right = await tryit(col, mid + 1); if (score >= right) await tryit(col, mid); } } console.log("Optimization complete"); }await findOptimalCombination();