T⃞T⃞R⃞S⃞ Fork

  • /*
     * @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 です。