可能な限りテトリスのガイドラインに準拠したテトリスのミニチュア バージョンを作成しようとしています。
正確に言うと、完全なゲームを 140 バイトの JavaScript でできるだけ少なく構成したいと考えています。最初の 140 バイトのスクリプトは、4 つの回転位置のそれぞれにある 7 つのテトロミノの 4 つの行を表す 112 の整数値を含む配列を返す必要があります。回転の正確な位置順序は非常に重要です。
データを 16 ビットの Unicode 文字 (ただし、2 バイトとして数えます) に入れ、140 バイト強で解凍するところまで行きました。
この配列を構築する賢い方法を知っている人はいますか?
var s="ༀ∢ð䑄࣠لâьˠцèౄ٠٠٠٠ۀѢlࣄӠѤäӄౠɤÆӈ",m=[];for(i=0;i<28;i++){c=s.charCodeAt(i);for(j=4;j>0;){ m.push(c>>(4*--j)&15)}return m}
I tetrimino
Spawn Rotate90 Rotate180 Rotate270
┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐
│ │ │ │ │ │ │ │■│ │ │ │ │ │ │ │ │■│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│■│■│■│■│ │ │ │■│ │ │ │ │ │ │ │ │■│ │ │
├─┼─○─┼─┤ ├─┼─○─┼─┤ ├─┼─○─┼─┤ ├─┼─○─┼─┤
│ │ │ │ │ │ │ │■│ │ │■│■│■│■│ │ │■│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │ │ │ │ │ │ │■│ │ │ │ │ │ │ │ │■│ │ │
└─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘
Hex: 0F00 Hex: 2222 Hex: 00F0 Hex: 4444
J tetrimino
Spawn Rotate90 Rotate180 Rotate270
┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│■│ │ │ │ │ │■│■│ │ │ │ │ │ │ │ │■│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│■│●│■│ │ │ │●│ │ │ │■│●│■│ │ │ │●│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │ │ │ │ │ │■│ │ │ │ │ │■│ │ │■│■│ │ │
└─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘
Hex: 08E0 Hex: 0644 Hex: 00E2 Hex: 044C
L tetrimino
Spawn Rotate90 Rotate180 Rotate270
┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │ │■│ │ │ │■│ │ │ │ │ │ │ │ │■│■│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│■│●│■│ │ │ │●│ │ │ │■│●│■│ │ │ │●│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │ │ │ │ │ │■│■│ │ │■│ │ │ │ │ │■│ │ │
└─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘
Hex: 02E0 Hex: 0446 Hex: 00E8 Hex: 0C44
O tetrimino
Spawn Rotate90 Rotate180 Rotate270
┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │■│■│ │ │ │■│■│ │ │ │■│■│ │ │ │■│■│ │
├─┼─○─┼─┤ ├─┼─○─┼─┤ ├─┼─○─┼─┤ ├─┼─○─┼─┤
│ │■│■│ │ │ │■│■│ │ │ │■│■│ │ │ │■│■│ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
└─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘
Hex: 0660 Hex: 0660 Hex: 0660 Hex: 0660
S tetrimino
Spawn Rotate90 Rotate180 Rotate270
┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │■│■│ │ │ │■│ │ │ │ │ │ │ │ │■│ │ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│■│●│ │ │ │ │●│■│ │ │ │●│■│ │ │■│●│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │ │ │ │ │ │ │■│ │ │■│■│ │ │ │ │■│ │ │
└─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘
Hex: 06C0 Hex: 0462 Hex: 006C Hex: 08C4
T tetrimino
Spawn Rotate90 Rotate180 Rotate270
┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │■│ │ │ │ │■│ │ │ │ │ │ │ │ │ │■│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│■│●│■│ │ │ │●│■│ │ │■│●│■│ │ │■│●│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │ │ │ │ │ │■│ │ │ │ │■│ │ │ │ │■│ │ │
└─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘
Hex: 04E0 Hex: 0464 Hex: 00E4 Hex: 04C4
Z tetrimino
Spawn Rotate90 Rotate180 Rotate270
┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│■│■│ │ │ │ │ │■│ │ │ │ │ │ │ │ │■│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │●│■│ │ │ │●│■│ │ │■│●│ │ │ │■│●│ │ │
├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│ │ │ │ │ │ │■│ │ │ │ │■│■│ │ │■│ │ │ │
└─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘ └─┴─┴─┴─┘
Hex: 0C60 Hex: 0264 Hex: 00C6 Hex: 04C8