タグ

tetrisに関するkmonのブックマーク (3)

  • あの565バイトテトリスが、ついに500バイトを切った!

    各所で話題になった「わずか565バイトテトリスのプログラミング解説」。 あの565バイトテトリスの作者がわかったとともに、さらにプログラム行数の圧縮が進められていました! 詳細は、 482バイトテトリス - Cozy Ozy に載っています。 (リンク先は482バイトとなっていますが、手元で改行コードを2バイトで確認してみたところ493バイトでした→追記:Ozyさんからコメントを頂きました。「改行位置を工夫すれば、セミコロンが省略できるので489バイトにできますよ」だそうです) 565バイトテトリスを作ったのは、nanagyouさんという方で、Short Codingにも名を刻んでいる超絶スーパーコーダーらしいです。 そして初期の565バイトテトリス完成から5年半以上経ち、新しく500バイトを切ったテトリスのソースコードはこちら。 <body id=D onKeyDown=K=event

    あの565バイトテトリスが、ついに500バイトを切った!
  • わずか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バイトテトリスのプログラミング解説
  • [elisp] tetrisのソースを読む - goinger的日記

    現在emacs標準?でついているテトリスのソースを読んでいます。行数は653行と少なめで読みやすいです。 プログラムの構成も全体的にシンプルで美しい感じがするものとなっていました。 というわけで、読んでるうちに少しメモった内容について書いてみます 始めに外部プログラムのインクルードをします.clはelispプログラムの各種マクロをまとめたファイル。gamegridはゲーム作成用のテンプレートのようなものだと思います。 ;;; Code: (eval-when-compile (require 'cl)) (require 'gamegrid) 次に各種変数の登録。elispプログラムの定石として、defgroup→defcustom→defvar=defconstといった流れで変数の登録をしております。 ちょっと間違った見解かもしれないですけど、def~の意味は以下のようになっています。(

    [elisp] tetrisのソースを読む - goinger的日記
  • 1