JSFiddle - React, Tailwind, and code Playground

by SimoneGianni

HTML

<html>
    <body>
        
    </body>
</html>

JavaScript

function DJBHash(cx,cy) {
    var hash = 5179531;
    
      var fnv_prime = 0x811C9DC5;
      hash += cx;
      hash *= fnv_prime;
      hash = Math.floor(hash % 0xFFFF);
      hash /= cy;
      hash *= fnv_prime;
      //hash = Math.floor(hash % 0xFFFFFFFF)    
      return hash;
    
    /*
    hash += ((hash * 128) + cx * (hash / 8));
    hash = Math.floor(hash%4294967296);
    var th = ((hash * 2048) + cy + (hash / 32));
    //th = -th - 1;
    //var zh = ~th;
    //th = (Math.floor(th%4294967296)*-1)-1;
    hash += th;
    hash = Math.floor(hash%4294967296);
    
    return hash;
    */
}

$(function() {
    $('body').append('<div id="stop">STOP</div>');
    var stop = false;
    $('#stop').click(function() { stop = true; });
    
    $('body').append('<div id="str"/>');
    $('body').append('<hr>');
    
    var bitcnt = [];
    for (var i = 0; i < 32; i++) {
        $('body').append('<div id="f' + i + '"/>');
        if (i%8==7) $('body').append('<hr>');
        bitcnt[i] = 0;
    }

    var cnt = 0;
    
    function gonext() {
        var h = DJBHash(cnt%1000,cnt/1000);
        cnt+=0.1;
        
        for (var i = 0; i < 32; i++) {
            if ((h & (1<<i)) != 0) {
                bitcnt[i]++;
            }
        }
    }
    
    function goround() {
        for (var i = 0; i < 1000; i++) {
            if (!stop) gonext();
        }
        
        for (var i = 0; i < 32; i++) {
            $('#f'+i).text(bitcnt[i]);
        }
        
        $('#str').text(cnt);
        if (!stop) setTimeout(goround,1000);
    }
    
    goround();
    
});