--[[
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
]]--
local win = false
a = {}
for i=1,4 do
a[i] = {}
for j=1,4 do
a[i][j] = 0
end
end
function determinant()
a[2][1] = a[1][2]
a[3][1] = a[1][3]
a[4][1] = a[1][4]
a[3][2] = a[2][3]
a[4][2] = a[2][4]
a[4][3] = a[3][4]
end
function update()
--insert code
end
function reset()
for i = 1,4 do
for j = 1,4 do
a[i][j] = 0
end
end
update()
end
function newNum()
local blank = 0
for i = 1,4 do
for j = 1,4 do
if a[i][j] == 0 then
blank = blank + 1
end
end
end
if blank == 0 then
return false
else
while true do
--insert random selection of x,y
if a[x][y] == 0 then
a[x][y] = 2
break
end
end
end
end
function score(val)
--insert code for adding score
for i = 1,4 do
for j = 1,4 do
if a[i][j] = 2048 then
win = true
end
end
end
end
function endScreen()
--insert code here
end
--main body
while true do
update()
while true do
event, key = os.pullEvent("key")
if (key == "w" or key == "a" or key == "s" or key == "d" or key == "r") then
break
end
end
if key == "r" then
reset()
elseif key == "w" or key == "s" then
determinant()
end
if key == "w" or key == "a" then
for i = 1,4 do
for j = 1,3 do
if a[i][5-j] == a[i][4-j] then
a[i][4-j] = a[i][5-j] + a[i][4-j]
score(a[i][4-j])
elseif a[i][4-j] == 0 then
a[i][4-j] = a[i][5-j]
end
a[i][5-j] = 0
end
if a[i][2] == 0 and a[i][3] > 0 then
a[i][2] = a[i][3]
a[i][3] = 0
end
end
elseif key == "s" or key == "d" then
for i = 1,4 do
for j = 1,3 do
if a[i][j] == a[i][j+1] then
a[i][j+1] = a[i][j] + a[i][j+1]
score(a[i][j])
elseif a[i][j+1] == 0 then
a[i][j+1] = a[i][j]
end
a[i][j] = 0
end
if a[i][3] == 0 and a[i][2] != 0 then
a[i][3] = a[i][2]
a[i][2] = 0
end
end
end
if key == "w" or key == "s" then
determinant()
end
if not newNum() then
local comb = false
for b = 1,2 do
for i = 1,4 do
for j = 1,3 do
if a[i][j] == a[i][j+1] then
comb = true
break
end
if comb then break end
end
if comb then break end
end
if comb then break end
determinant()
end
endScreen()
sleep(1000)
reset()
end
if win == true then
update()
sleep(250)
endScreen()
end
end
Comments