我正在尝试编写一个尽可能遵循俄罗斯方块指南的微型版本的俄罗斯方块:
准确地说,我希望用尽可能少的 140 字节 javascript 构建完整的游戏。第一个 140 字节的脚本应该返回一个包含 112 个整数值的数组,这些值代表 4 个旋转位置中的每一个中的 7 个 tetrominos 的 4 行。旋转的确切位置顺序非常重要。
我将数据放在 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)}返回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