パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

545バイトのテトリスプログラム」記事へのコメント

  • by TarZ (28055) on 2007年11月22日 13時29分 (#1254093) 日記
    普通に、HTML ≠ JavaScript ですよね。

    Programmer Hierarchyでも、HTMLとは別になってますよ。
    • Re:あり? (スコア:1, 参考になる)

      by Anonymous Coward on 2007年11月22日 13時47分 (#1254117)
      HTMLの中に組み込まれたJavaScriptであってHTMLで書いてるわけじゃないですね。
      scriptタグの中はtype指定された別の記述方式のものとなります。
      なのでテトリスになってるのはJavaScriptであってHTMLは配置してるだけです。

      本来なら外部ファイルとして読み込むのが正当かとおもいます。
      組み込みはちょっとした事を書くのに別ファイルじゃ面倒ってのに対応しただけ。

      #と、とりあえず関連してるところにぶら下げる。
      親コメント
      • by TarZ (28055) on 2007年11月22日 14時04分 (#1254135) 日記
        ですよね。なので、「HTMLがプログラミング言語だ」ってのはちょっと違うでしょう。

        それはそうと、タレコミのリンク先を辿って、ショートコーダーなる言葉があることを知りました。

        なお、ショートコーダーとは、... [zapanet.info]
        ショートコーダー(Short Coder)とは、プログラムのソースコードを極限まで短縮する技術を持ったプログラマのことである。
        ...


        Javascriptのこの手のテクニックはあまり持っていないので、解説を読み中…
        親コメント
        • Re:あり? (スコア:3, 参考になる)

          by Angelica (23122) on 2007年11月22日 17時42分 (#1254243) 日記
          たまたま昨日「圧縮ツールの逆、JavaScriptの整形ツール - JS Beautifier登場 [mycom.co.jp]」というのを読んでいたので、早速試してみる [laacz.lv]。
          window.onkeydown = function(e) {
              K = e.keyCode
          };
          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()
          ・・・やっぱり読みにくいな。
          文脈をうまく解析してforやifの中身を分かりやすく書いてくれる機能がついてれば完璧なんですけどね。
          親コメント
      • by Anonymous Coward
        大昔、BASICのソース内にDATA文でバイナリ用意してメモリに書き込み制御を渡すプログラムが流行ってたな。
        ソースはBASICだしLOADもSAVEもBASICから行うけど、マシン語って呼ばれてたような…
        • by Nomad-AY (2520) on 2007年11月22日 16時54分 (#1254231) ホームページ
          >大昔、BASICのソース内にDATA文でバイナリ用意してメモリに書き込み制御を渡すプログラムが流行ってたな。
          REM文に記述して、メモリを書き換えてプログラムとするなんてのは、ごく最近の話ですもんね!!
          --
          タブレット中毒者。
          親コメント
        • BASICのソース内にDATA文でバイナリ用意して

          形は違えど今でもやっている人がいるらしいというのを小耳に挟んだことがあります。

          char codes[] = {0x1a, 0xaa, ... }; //マシン語コード並び
          void foo() {
          codes();
          }

          みたいな感じ。(codes[]は.textとかの実行可能な領域に配置されるように細工する。)

          私にとって幸いなことに、大昔のdata文とかに書かれていたコード以外では、そういうソースコードを今まで見たことはありませんけど。

          --
          vyama 「バグ取れワンワン」
          親コメント
        • by Anonymous Coward
          ネ木1 ネ木4 →コ 

          # おっさんホイホイ置いときますね。

    • by Anonymous Coward
      プログラム内で<br>タグと"■"と"_"を利用して画面を描画していることから
      一部HTMLを利用してはいるということでいろいろごっちゃになってるんではないでしょうか?

      もしくは"ブラウザで動いているからHTMLと関係が"とか?
      • Re:あり? (スコア:1, すばらしい洞察)

        by Anonymous Coward on 2007年11月22日 14時42分 (#1254157)
        うむ。

        昔で言うところのエスケープシーケンスでカーソル位置動かして表示させるのと何ら変わりがない。

        さすがに仕様が静的であるVT端末等のターミナルを、プログラム言語と同列に扱うのは無理がある。
        親コメント

にわかな奴ほど語りたがる -- あるハッカー

処理中...