« 整理整頓 | トップページ | 名前付けるのって大変です »

2008年2月13日 (水)プログラムの記述って素晴らしい!

おはようございます。本日の当番、ゴルファー兼プログラマのJ.Kです。

私は、プログラムを組んでいる際に、ふと、いかにサイズの小さい、高速なコードを書けるか?ということにチャレンジしたくなる時があります。
(当然、激しく忙しい時はそんな余裕はありませんが…)

大体の場合、サイズを小さくすると、低速化してしまったり、高速化すると、サイズが肥大してしまいます。

で、その情熱を満たすために、本やネットで色々と検索して見るわけです。
世の中は広いので、色々と有用な情報を入手する事ができ、様々な局面で重宝します。

今日も今日とて、その情熱を満たすために、色々と調べていたその時!

驚愕のプログラムを発見しました…

そのプログラムとは以下のとおり…

<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>

ギュウギュウに詰まって、見難いプログラムとはいえ、たった7行です。

このコードをテキストファイルにコピペします。
次に、このファイルをtest.htmという名前で保存します。
(別にtestである必要はないですが…拡張子がhtmならなんでも良いです)

当然、ファイル拡張子がhtmなので、ブラウザで開くことができます。

開いてみると

うぉ!テトリスだ!テトリスだよ!!!
7行でテトリスだよ!!!
(ちなみにカーソルキーで移動、エンターキーで回転です)

これは驚いた。
ここまでまとめれるとは…

ここまで、極端な結果は求めないにしても、プログラムの縮小・高速化は、常に目指して行きたいものです。

 
プログラム参照

http://www.geocities.jp/nanagyou/list.html

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2008/02/post_adb9.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« 整理整頓 | トップページ | 名前付けるのって大変です »

プログラマー」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: プログラムの記述って素晴らしい!:

« 整理整頓 | トップページ | 名前付けるのって大変です »