-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtetris.lua
119 lines (101 loc) · 2.68 KB
/
tetris.lua
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
local Tetris = {}
--- I
local a = {0,0,0,0,
1,1,1,1,
0,0,0,0,
0,0,0,0}
--- T
local b = {0,2,0,
2,2,2,
0,0,0}
--- L
local c = {0,0,3,
3,3,3,
0,0,0}
--- J
local d = {4,0,0,
4,4,4,
0,0,0}
--- S
local e = {0,5,5,
5,5,0,
0,0,0}
--- Z
local f = {6,6,0,
0,6,6,
0,0,0}
--- O
local g = {0,0,0,0,
0,7,7,0,
0,7,7,0,
0,0,0,0}
local function fix(arr, width)
local real = {}
for i=width+1,width+#arr+1 do
io.write(i)
io.write(i-width)
real[i]=arr[i-width]
end
-- print("")
return real
end
local pieces = {}
pieces[1] = fix(a, 4)
pieces[2] = fix(b, 3)
pieces[3] = fix(c, 3)
pieces[4] = fix(d, 3)
pieces[5] = fix(e, 3)
pieces[6] = fix(f, 3)
pieces[7] = fix(g, 4)
local sizes = {}
sizes[1] = {4, 4}
sizes[2] = {3, 3}
sizes[3] = {3, 3}
sizes[4] = {3, 3}
sizes[5] = {3, 3}
sizes[6] = {3, 3}
sizes[7] = {4, 4}
local colors = {}
colors[1] = {255, 0, 0}
colors[2] = {255, 255, 0}
colors[3] = {255, 0, 255}
colors[4] = {0, 255, 0}
colors[5] = {0, 255, 255}
colors[6] = {0, 0, 255}
colors[7] = {255, 255, 255}
Tetris.initialize = function ()
love.graphics.setDefaultFilter("nearest", "nearest", 1)
local imgs = {}
imgs[1] = love.graphics.newImage("assets/01.png")
imgs[2] = love.graphics.newImage("assets/02.png")
imgs[3] = love.graphics.newImage("assets/03.png")
imgs[4] = love.graphics.newImage("assets/04.png")
imgs[5] = love.graphics.newImage("assets/05.png")
imgs[6] = love.graphics.newImage("assets/06.png")
imgs[7] = love.graphics.newImage("assets/07.png")
Tetris.imgs = imgs
end
local beamKick = {}
beamKick["12"] = {{0,0},{-2,0},{1,0},{-2,-1},{1,2}}
beamKick["21"] = {{0,0},{2,0},{-1,0},{2,1},{-1,-2}}
beamKick["23"] = {{0,0},{-1,0},{2,0},{-1,2},{2,-1}}
beamKick["32"] = {{0,0},{1,0},{-2,0},{1,-2},{-2,1}}
beamKick["34"] = {{0,0},{2,0},{-1,0},{2,1},{-1,-2}}
beamKick["43"] = {{0,0},{-2,0},{1,0},{-2,-1},{1,2}}
beamKick["41"] = {{0,0},{1,0},{-2,0},{1,-2},{-2,1}}
beamKick["14"] = {{0,0},{-1,0},{2,0},{-1,2},{2,-1}}
local wallKick = {}
wallKick["12"] = {{0,0},{-1,0},{-1,1},{0,-2},{-1,-2}}
wallKick["21"] = {{0,0},{1,0},{1,-1},{0,2},{1,2}}
wallKick["23"] = {{0,0},{1,0},{1,-1},{0,2},{1,2}}
wallKick["32"] = {{0,0},{-1,0},{-1,1},{0,-2},{-1,-2}}
wallKick["34"] = {{0,0},{1,0},{1,1},{0,-2},{1,-2}}
wallKick["43"] = {{0,0},{-1,0},{-1,-1},{0,2},{-1,2}}
wallKick["41"] = {{0,0},{-1,0},{-1,-1},{0,2},{-1,2}}
wallKick["14"] = {{0,0},{1,0},{1,1},{0,-2},{1,-2}}
Tetris.pieces = pieces
Tetris.sizes = sizes
Tetris.colors = colors
Tetris.beamKick = beamKick
Tetris.wallKick = wallKick
return Tetris