-
-
Save ondras/2321944 to your computer and use it in GitHub Desktop.
function(){ | |
/* Rules: // make sure | |
(1) anonymous function // to annotate | |
(2) optionally self-executing // your code | |
(3) <140 bytes // so everyone | |
(4) no global vars // can learn | |
(5) MIT license // from it! | |
(6) good luck! | |
*/} |
function(){/*Rules: (1) anonymous function (2) optionally self-executing (3) <140 bytes (4) no global vars (5) MIT license (6) good luck!*/} |
{ | |
"name": "sample", | |
"keywords": [ "sample", "original" ] | |
} |
@williammalo
Results will be different though, because r will be undefined the first time the loop runs. This should work and be a byte smaller too:
``` function(c,s,i,a,b){for(a=b=0;i--;)r=Math.random(),c.fillRect(a=(r>2/3&&s)+a>>1,b=(r<1/3&&s)+b>>1,1,1)}``
@xpansive
"r" will leak to the global scope.
Also, 20 bytes smaller than the original:
function(c,s,i,a,b,r){for(;i--;r=Math.random()_3)c.fillRect(a=(r>2)_s+a>>1,b=(r<1)*s+b>>1,1,1)}
Whoops, totally missed that.
@williammalo
Thanks a lot for your improvements; I adjusted the code according to your last variant. Values "a" and "b" are now rounded each iteration (difference from my original version), but I suppose that is not a problem :-)
@ondra Thanks! :)
1 byte smaller!:
function(c,s,i,a,b,r){for(;i--;r=Math.random()_3)c.fillRect(a=(r>2)_s+a>>1,b=!~~r*s+b>>1,1,1)}
9 bytes smaller:
function(c,s,i,a,b,r){for(a=b=0;i--;r=Math.random())c.fillRect(a=(r>2/3&&s)+a>>1,b=(r<1/3&&s)+b>>1,1,1)}