JSFiddle - React, Tailwind, and code Playground

by fillano

HTML

<button id="test">
test
</button>
<div id="panel">

</div>

JavaScript

$(function() {
	const a = getAnswer();
  $('#test').on('click', e => {
  	let str = JSON.stringify(a.next().value);
    let panel = $('#panel');
    panel.html(panel.html() + str + '<br>');
  });
});

function getRandom(x) {
    if(x < 1) return 0;
    return Math.round(Math.random() * Number.MAX_SAFE_INTEGER) % x;
}

function getRandomArray(size, sample) {
    let a = Array.from(Array(sample).keys());
    let ret = [];
    for(let i=0; i<size; i++) {
        let idx = getRandom(a.length - 1);
        ret.push(a.splice(idx, 1)[0]);
    }
    ret.sort();
    return ret;
}
  

function* getAnswer() {
    while(true) {
        let check = [];
        let answer = getRandomArray(8, 32);
        for (let i = 0; i < answer.length; i++) {
            check.push(answer[i] - answer[i + 1]);
        }
    
        if (check.find((el) => el <= -6)) {
        	  console.log('result abandoned.');
        } else {
            yield(check)
        }
    }
}