理系の理系による理系のためのブログ

理系以外の人も大歓迎です。

コピペOK テトリスのプログラムは脅威の6行

ソ連時代に開発された大人気ゲーム「テトリス」。

それは最短で6行のプログラムによって書くことが可能だ。

そのプログラムはこちら。
変数の宣言がされていなかったり、一文字だったり、使いまわされていたり、と読みづらいです。

<body id=D onKeyDown=K=event.keyCode-38><script>Z=X=[B=A=12];function Y(){for(C=[q=c=i=4];
f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?h+=K:t?B=C:0
;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=[[-7,-20,6,h
=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=k++,c=l+=A);
--c>A;)Z[c]=Z[c-A];for(S="";i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228)?i%A?"■":
"■<br>":"_");D.innerHTML=S+P;Z[5]||setTimeout(Y,i-P)}Y(h=K=t=P=0)</script>

 

実際に動くのでしょうか?
メモ帳に張り付け実験してみます。

 

 

無事動くことが確認できました。
CSSがないのに質素だなぁとは感じないのが不思議です。

 

 

昔はアプリとかの容量が小さかったので短いコードを書くことが求められていました。
時々はこんなに短いプログラムを見るのも面白いですね。