T⃞T⃞R⃞S⃞
by
pacochi
2017-06-15 [2017/06/15 12:36:48]
元は七行テトリスだったものです。
-
/*
* @title T⃞T⃞R⃞S⃞
* @description 元は七行テトリスだったものです。
* @include *
* @license DDE License (http://d.hatena.ne.jp/Ozy/20071104#c1196751272)
* @javascript_url
*/
// http://yurume.hatenadiary.jp/entry/tetris452
// ひらいちゃったし開き直って色々付け足す
{
let D, Z, X, B, K, P, h, t, i;
D = document;
D.documentElement.lang = 'ja';
Array.from(D.styleSheets, s => s.disabled = 1);
onkeydown = e => K = e.which - 38,
Z = X = B = [],
(Y = f => {
C = [A = 12];
K & B.some(
(p, n) => Z[h + (K + 6 ? p + K : C[n] = p * A - (p / 9 | 0) * 145)]
) ? 0 : K + 6 ? h += K : t ? B = C : 0;
B.map(q => X[f |= Z[A + h + q], h + q] = 1);
if (f || 1 - B)
for (Z = X, X = [l = 228], B = [~[10, 23, -3, -14, A][t = ++t % 7], 0, 1, t - 6 ? -A : 2]; l--; h = 5)
for (l % A ? l -= l % A * !Z[l] : (P += f++, K = l += A); --K > A; )
Z[K] = Z[K - A];
for (K = i = 0, h += A, S = P; i < 240; )
// Hatena::Let はテンプレートリテラル得意じゃないから \n にしとく
// あとなんか■と_の大きさが違ってたから別のにした
S += X[i] | (X[i] = Z[i] |= ++i % A < 2 | i > 228) ? ~-i % A ? '■' : '\n■' : '□';
// innerText が何故か firefox でキー反応が悪くなるから無理だったんだけど
// ブックマークレットだと特にそんなことにならなかった、要検証
D.body.innerText = S;
Z[5] || setTimeout(Y, i - P)
})(h = K = t = P = 0)
}
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。