たった565バイトでテトリスが動くんです。

すでにご存じの方も多いと思いますが、今日はじめて知って驚きのあまり勢いで載せてしまいました。

もう知っている人には耳にたこができるほど有名なお話だと思いますが、何気なく情報収集をしていて今しがた初めて知り、戦慄を覚えました。

文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。

わずか565バイトテトリスのプログラミング解説

 上記サイト様の方で詳しいコードの説明もされていたのですが、とにかくほんの少しも無駄がない。本当にすごいコーディングだと思います。

昔話になりますが、かつてのパソコン黎明期には16KB、32KB程度のRAMでBASICを使いプログラミングをしていました。その頃を思い出すと、今は隔世の感があります。

でも、時代は変わってもスキルの高いプログラマーは昔と変わらず制限がきつければコードを絞って目的の機能を作り上げる。そういう(エコ?)プログラマーもまだまだいるんだなーと思うと無性にうれしくなりました。

ちなみに肝心のテトリスは下記のコードをメモ帳に貼り付けて、htmlの拡張子で保存すればブラウザで遊べます。方向キーとenterキーで遊べますので、暇つぶしにどうぞ。

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

スポンサーリンク

お役に立てたようならシェアしていただければ幸いです。

フォローはこちらからお願いします。



スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。