1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
local poly = require "game.polyomino"
local M = {}
M.__index = M
local jlstz_kicks = {
{{0,0}, {-1,0}, {-1, 1}, {0,-2}, {-1,-2}},
{{0,0}, { 1,0}, { 1,-1}, {0, 2}, { 1, 2}},
{{0,0}, { 1,0}, { 1, 1}, {0,-2}, { 1,-2}},
{{0,0}, {-1,0}, {-1,-1}, {0, 2}, {-1, 2}},
}
M.i = poly.def("tetr.I", [[
....
####
....
....
]], {
{{0,0}, {-2,0}, {1,0}, {-2,-1}, {1,2}}, -- TODO: format this nicely if you dare.
{{0,0}, {-1,0}, {2,0}, {-1,2}, {2,-1}},
{{0,0}, {2,0}, {-1,0}, {2,1}, {-1,-2}},
{{0,0}, {1,0},{-2,0},{1,-2},{-2,1}},
})
M.j = poly.def("tetr.J", [[
#..
###
...
]], jlstz_kicks)
M.l = poly.def("tetr.L", [[
..#
###
...
]], jlstz_kicks)
M.o = poly.def("tetr.O", [[
....
.##.
.##.
....
]], jlstz_kicks)
M.s = poly.def("tetr.S", [[
.##
##.
...
]], jlstz_kicks)
M.z = poly.def("tetr.Z", [[
##.
.##
...
]], jlstz_kicks)
M.t = poly.def("tetr.T", [[
.#.
###
...
]], jlstz_kicks)
return M
|