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()
あり? (スコア:1)
Programmer Hierarchyでも、HTMLとは別になってますよ。
Re:あり? (スコア:1, 参考になる)
scriptタグの中はtype指定された別の記述方式のものとなります。
なのでテトリスになってるのはJavaScriptであってHTMLは配置してるだけです。
本来なら外部ファイルとして読み込むのが正当かとおもいます。
組み込みはちょっとした事を書くのに別ファイルじゃ面倒ってのに対応しただけ。
#と、とりあえず関連してるところにぶら下げる。
Re:あり? (スコア:1)
それはそうと、タレコミのリンク先を辿って、ショートコーダーなる言葉があることを知りました。
なお、ショートコーダーとは、... [zapanet.info]
Javascriptのこの手のテクニックはあまり持っていないので、解説を読み中…
Re:あり? (スコア:3, 参考になる)
文脈をうまく解析してforやifの中身を分かりやすく書いてくれる機能がついてれば完璧なんですけどね。
Re:あり? (スコア:0)
ソースはBASICだしLOADもSAVEもBASICから行うけど、マシン語って呼ばれてたような…
Re:あり? (スコア:1)
REM文に記述して、メモリを書き換えてプログラムとするなんてのは、ごく最近の話ですもんね!!
タブレット中毒者。
(オフトピック)今でもbinaryをソースに埋めこみはあるそうな (スコア:1)
形は違えど今でもやっている人がいるらしいというのを小耳に挟んだことがあります。
char codes[] = {0x1a, 0xaa, ... }; //マシン語コード並び
void foo() {
codes();
}
みたいな感じ。(codes[]は.textとかの実行可能な領域に配置されるように細工する。)
私にとって幸いなことに、大昔のdata文とかに書かれていたコード以外では、そういうソースコードを今まで見たことはありませんけど。
vyama 「バグ取れワンワン」
Re:あり? (スコア:0)
# おっさんホイホイ置いときますね。
Re:あり? (スコア:1)
Re:あり? (スコア:0)
全部、半角でお願いしますね!!(といっても無理ですが、、、)
Re:あり? (スコア:0)
一部HTMLを利用してはいるということでいろいろごっちゃになってるんではないでしょうか?
もしくは"ブラウザで動いているからHTMLと関係が"とか?
Re:あり? (スコア:1, すばらしい洞察)
昔で言うところのエスケープシーケンスでカーソル位置動かして表示させるのと何ら変わりがない。
さすがに仕様が静的であるVT端末等のターミナルを、プログラム言語と同列に扱うのは無理がある。