-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgui.lua
83 lines (76 loc) · 1.95 KB
/
gui.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
cellWidth = 40
marginLeft = 80
marginTop = 25
colors = {
{245, 234, 221},
{245, 230, 205},
{245, 183, 124},
{245, 157, 86},
{15, 130, 98},
{245, 94, 60},
{245, 213, 118},
{245, 211, 101},
{245, 204, 84},
{245, 206, 71},
{245, 200, 49},
{245, 67, 64},
{74, 64, 54}
}
function drawCells(gc)
gc:drawLine(marginLeft, marginTop, marginLeft, marginTop+(cellWidth*4))
for i=1, 4 do
gc:drawLine(
marginLeft+(cellWidth*i),
marginTop,
marginLeft+(cellWidth*i),
marginTop+(cellWidth*4)
)
end
gc:drawLine(marginLeft, marginTop, marginLeft+(cellWidth*4), marginTop)
for i=1, 4 do
gc:drawLine(
marginLeft,
marginTop+(cellWidth*i),
marginLeft+(cellWidth*4),
marginTop+(cellWidth*i)
)
end
end
function getStringFromExponent(exponent)
if exponent == 0 then
return ""
end
return tostring(2^exponent)
end
function drawColors(gc)
for i=1, 4 do
for j=1, 4 do
if field[i][j] ~= 0 then
gc:setColorRGB(unpack(colors[field[i][j]]))
gc:fillRect(
marginLeft+(j*cellWidth)-cellWidth+1,
marginTop+(i*cellWidth)-cellWidth+1,
cellWidth-1,
cellWidth-1
)
end
end
end
end
function drawNumbers(gc)
for i=1, 4 do
for j=1, 4 do
if field[i][j] == 1 or field[i][j] == 2 then
gc:setColorRGB(144, 107, 124)
else
gc:setColorRGB(255, 246, 255)
end
gc:drawString(
getStringFromExponent(field[i][j]),
marginLeft+((j-1)*cellWidth)+(cellWidth/2)-(#getStringFromExponent(field[i][j])*4),
marginTop+((i-1)*cellWidth)+(cellWidth/2),
"middle"
)
end
end
end