タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

テトリスに関するWaferのブックマーク (2)

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

    「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか40キロバイト」に載っていたわずか565バイトのテトリス。文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。 以下のソースコードをメモ帳に貼り付けて、htmlで保存すればテトリスが動きます。 <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){fo

    わずか565バイトテトリスのプログラミング解説
    Wafer
    Wafer 2007/11/02
    イイ!
  • 2007-11-01

    id:haru-sさんからのトラバで知りました. わずか565バイトテトリスのプログラミング解説 7行プログラミングですね.7行プログラミングのマインドってのは,500バイトそこそこで収まるようにソースコードを凝縮するってことだと思います.つまり制限容量に収まってしまえば,最後の詰めは甘くてもまあしかたないかなぁと私は思うのですが,まあ縮みそうなソースコードが転がっていると一応見ておきたい気もします. とりあえず,テトリスのコードを眺めたところでは明らかに縮みそうな箇所がありますね.パッと目に付いたのは,5行目の if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;) ショートコーダーはelseなんて書かないので,たとえばこんな感じで縮めてやれば良いでしょう. for(j=l+=l%A?-l%A*!Z[l]:(P+=k++,A);l%A&&--

    2007-11-01
    Wafer
    Wafer 2007/11/02
    こういうの楽しいよねー
  • 1