Skip to content

Instantly share code, notes, and snippets.

@plugnburn
Created October 3, 2013 17:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save plugnburn/6813874 to your computer and use it in GitHub Desktop.
Save plugnburn/6813874 to your computer and use it in GitHub Desktop.
Pong999 - adaptive multiplayer pong in 999 bytes. Controls: A/Z keys for player 1, Up/Down arrows for player 2. Play at http://bl.ocks.org/plugnburn/raw/6813874/
<!DOCTYPE html><title>Pong</title><body onload='R=window.requestAnimationFrame||function(c){setTimeout(c,16)};Z=document.querySelector("canvas"),p=s=0;(onresize=function(){H=(K=Z.height=innerHeight)/5,W=(J=Z.width=innerWidth)>>6,M=W>>1})();(D=function(){Y=Z.getContext("2d"),Y.font="40pt monospace",Y.textBaseline="top",O=P=(K-H)>>1,x=M+W+1,y=O+(H-W)>>1,U=I=0,B=V=4})();onkeydown=function(e){eval({65:"U=-4",90:"U=4",38:"I=-4",40:"I=4"}[e.which])};onkeyup=function(e){eval({65:"U",90:"U",38:"I",40:"I"}[e.which]+"=0")};R(Q=function(){R(Q);with(Math)A=abs,O=min(max(O+U,M),z=K-M-H),P=min(max(P+I,M),z);(y<M||y>K-M-W)&&(B=-B);x<=M+W&&(y+W>=O&&y<=O+H?V=A(U)-V:D(++s)),x>=J-M-W-W&&(y+W>=P&&y<=P+H?V=-V-A(I):D(++p));Y.F=Y.fillRect;with(Y)fillStyle="#000",F(0,0,J,K),fillStyle="#eee",F((J-W)/2,0,W,K),F(M,O,W,H),F(J-W-M,P,W,H),F(x+=V,y+=B,W,W),textAlign="right",fillText(p,J/2-W-M,M),textAlign="left",fillText(s,J/2+W+M,M)})'><canvas style=position:fixed;top:0;left:0>Use a browser, moron!</canvas></body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment