-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy paththrees.min.js
More file actions
1 lines (1 loc) · 1021 Bytes
/
threes.min.js
File metadata and controls
1 lines (1 loc) · 1021 Bytes
1
b.bgColor="#eee";c.font="17pt cursive";c.textAlign="center";E="";S="fillStyle";c.T=c.fillText;c.R=c.fillRect;V="#000";W="#FFF";X="#DDD";Y="#F68";Z="#7CF";M=Math;R=M.random;H=3;U=G();function G(a){for(g=M.ceil(3*R());2<g&&g<H&&0.4>R();)g*=2;return a?g-2:g}function O(a){p=s=0;for(k=1;5>k;k++){if(k==a||!a){for(i=4;i--;)for(v=F[i],m=0;4>m;m++)if(n=m+1,!v[m]&&v.slice(m).join(E)-0&&(a&&F[i].splice(m,1)&&(F[i][3]=0),s=m=5),3<=v[m]&&v[m]==v[n]||3==v[m]+v[n])a&&F[i].splice(m,2,F[i][m]+F[i][n])&&(F[i][3]=0),s=m=5;if(a&&s){for(i=G();F[i%4][3];)i++;F[i%4][3]=U;U=G()}}n=[];for(i=0;4>i;i++)for(n[i]=[],j=0;4>j;j++)m=F[j][3-i],n[i][j]=m-0,H=M.max(H,m),c[S]=[X,Z,Y][m]||W,c.R(2+42*j,2+47*i,40,45),c[S]=3>m?W:11<m&&m==H?Y:V,c.T(m||E,23+42*j,30+47*i,40),p+=3>m?0:M.pow(3,M.log(m/3)/M.LN2+1);F=n}c[S]=[X,Z,Y][U]||W;c.R(200,30,40,45);return s}c.T("Next",220,23);F=(E+33211E7).split(E);F.push(G(),G(),G(),G());F.sort(G);for(z=4;z--;)F.push(F.splice(0,4));O();onkeyup=function(a){w=a.which;41>w&&36<w&&(O(w-36),O()||alert("Score: "+p))}