亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > 綜合 > 正文

lua實(shí)現(xiàn)的2048小游戲

2024-07-21 23:04:24
字體:
供稿:網(wǎng)友

lua實(shí)現(xiàn)的2048小游戲,只要可以運(yùn)行l(wèi)ua腳本的環(huán)境下都可以玩。

 

復(fù)制代碼 代碼如下:

--[[=============================================================================
#     FileName: 2048.lua
#         Desc: lua console 2048
#       Author: hanxi
#        Email: hanxi.info@gmail.com
#     HomePage: http://www.hanxi.info
#      Version: 0.0.1
#   LastChange: 2014-04-28 11:05:09
#      History:
=============================================================================]]
local function initGrid(m,n)
    local grid = {}
    for i=1,m do
        if not grid[i] then
            grid[i] = {}
        end
        for j=1,n do
            grid[i][j] = 0
        end
    end
    return grid
end
local function printGrid(grid)
    local celllen = 8  -- 每個格子占用字符數(shù)
    local gridStrLines = {}
    table.insert(gridStrLines,"-------------------------------------")
    for i,row in ipairs(grid) do
        local line = {}
        for _,num in ipairs(row) do
            if num==0 then
                local pres = ""
                for tmp=1,celllen do
                    pres = pres .. " "
                end
                local s = string.format("%s",pres)
                table.insert(line,s)
            else
                local s = tostring(num)
                local l = string.len(s)
                local l = (celllen-l)/2
                local prel = math.floor(l)
                local sufl = math.ceil(l)
                local pres = ""
                for tmp=1,prel do
                    pres = pres .. " "
                end
                local sufs = pres
                if sufl>prel then
                    sufs = pres.. " "
                end
                local s = string.format("%s%s%s",pres,s,sufs)
                table.insert(line,s)
            end
        end
        local line = table.concat(line,"|")
        line = "|" .. line .. "|"
        table.insert(gridStrLines,line)
        table.insert(gridStrLines,"-------------------------------------")
    end
    local gridStr = table.concat(gridStrLines,"/n")
    print(gridStr)
end
local function randomGrid(grid)
    local m = #grid
    local n = #grid[1]
    for i=1,m do
        for j=1,n do
            local r = math.random(1,5)
            local num = 2^r
            grid[i][j] = num
        end
    end
end
local function getRandomZeroPos(grid)
    local m = #grid
    local n = #grid[1]
    local zeros = {}
    for i=1,m do
        for j=1,n do
            if grid[i][j]==0 then
                table.insert(zeros,{i=i,j=j})
            end
        end
    end
    if #zeros>0 then
        local r = math.random(1,#zeros)
        return zeros[r].i,zeros[r].j
    end
end
local function randomNum(grid)
    local i,j = getRandomZeroPos(grid)
    if i and j then
        local r = math.random()
        if r<0.9 then
            grid[i][j] = 2
        else
            grid[i][j] = 4
        end
        return i,j
    end
end
local function moveLeft(grid)
    print("==============moveLeft===============")
    local m = #grid
    local n = #grid[1]
    for i=1,m do
        local line = {}
        for j=1,n do
            if grid[i][j]~=0 then
                table.insert(line,grid[i][j])
            end
        end
        local k=#line
        for j=1,n do
            if j<=k then
                grid[i][j] = line[j]
            else
                grid[i][j] = 0
            end
        end
        for j=1,k-1 do
            if grid[i][j]==grid[i][j+1] then
                grid[i][j+1] = grid[i][j] + grid[i][j+1]
                for x=j,n-1 do
                    grid[i][x] = grid[i][x+1]
                end
                grid[i][n] = 0
            end           
        end
    end
end
local function moveRight(grid)
    print("==============moveRight==============")
    local m = #grid
    local n = #grid[1]
    for i=1,m do
        local line = {}
        for j=n,1,-1 do
            if grid[i][j]~=0 then
                table.insert(line,grid[i][j])
            end
        end
        local k = #line
        for j=n,1,-1 do
            if n-j+1<=k then
                grid[i][j] = line[n-j+1]
            else
                grid[i][j] = 0
            end
        end
        for j=n,n-k+2,-1 do
            if grid[i][j]==grid[i][j-1] then
                grid[i][j-1] = grid[i][j] + grid[i][j-1]
                for x=j,2,-1 do
                    grid[i][x] = grid[i][x-1]
                end
                grid[i][1] = 0
            end
        end
    end
end
local function moveUp(grid)
    print("===============moveUp================")
    local m = #grid
    local n = #grid[1]
    for j=1,n do
        local line = {}
        for i=1,m do
            if grid[i][j]~=0 then
                table.insert(line,grid[i][j])
            end
        end
        local k = #line
        for i=1,m do
            if i<=k then
                grid[i][j] = line[i]
            else
                grid[i][j] = 0
            end
        end
        for i=1,k-1 do
            if grid[i][j]==grid[i+1][j] then
                grid[i+1][j] = grid[i][j] + grid[i+1][j]
                for x=i,m-1 do
                    grid[x][j] = grid[x+1][j]
                end
                grid[m][j] = 0
            end           
        end
    end
end
local function moveDown(grid)
    print("==============moveDown===============")
    local m = #grid
    local n = #grid[1]
    for j=1,n do
        local line = {}
        for i=m,1,-1 do
            if grid[i][j]~=0 then
                table.insert(line,grid[i][j])
            end
        end
        local k = #line
        for i=m,1,-1 do
            if m-i+1<=k then
                grid[i][j] = line[m-i+1]
            else
                grid[i][j] = 0
            end
        end
        for i=m,m-k+2,-1 do
            if grid[i][j]==grid[i-1][j] then
                grid[i-1][j] = grid[i][j] + grid[i-1][j]
                for x=i,2,-1 do
                    grid[x][j] = grid[x-1][j]
                end
                grid[1][j] = 0
            end
        end
    end
end
local function canMove(grid)
    local m = #grid
    local n = #grid[1]
    for i=1,m do
        for j=1,n do
            if grid[i][j]==0 then
                return true
            end
            if (i<m and j<n)
            and (grid[i][j]==grid[i][j+1]
                or grid[i][j]==grid[i+1][j]) then
                return true
            end
        end
    end
    return false
end
local function main()
    local grid = initGrid(4,4)
    randomNum(grid)
    printGrid(grid)
    io.write("next step 'a'[←],'w'[↑],'s'[↓],'d'[→],'q'[exit] >> ")
    local input = io.read()
    while input~="q" do
        if input=="a" or input=="w" or input=="s" or input=="d" then
            if input=="a" then
                moveLeft(grid)
            elseif input=="w" then
                moveUp(grid)
            elseif input=="s" then
                moveDown(grid)
            elseif input=="d" then
                moveRight(grid)
            end
            randomNum(grid)
            printGrid(grid)
        else
            print("error input. please input 'a'[←] or 'w'[↑] or 's'[↓] or 'd'[→] or 'q'[exit]")
        end
        io.write("next step 'a'[←],'w'[↑],'s'[↓],'d'[→],'q'[exit] >> ")
        input = io.read()
    end
end
main()

 

以上就是本文所述的全部內(nèi)容了,希望大家能夠喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
99精品国产高清一区二区麻豆| 国内精品不卡| 手机在线免费观看毛片| 欧美亚洲一区二区三区四区| 日韩制服丝袜先锋影音| 国产经典一区二区三区| 奇米色777欧美一区二区| 国产免费一级视频| 无码精品黑人一区二区三区| 免费av观看网址| 免费在线一区观看| 久久久精品欧美丰满| 又粗又大的机巴好爽欧美| 蜜桃传媒一区二区三区| 亚洲欧洲美洲在线综合| 羞羞视频在线免费国产| 亚洲国产一区二区三区| 成年人免费视频观看| 成人黄色在线观看视频| 国产亚洲色婷婷久久99精品91| 亚洲自拍都市欧美小说| 久久高清国产| 国产裸体美女永久免费无遮挡| 亚洲品质自拍视频网站| 色影视在线视频资源站| 久久性天堂网| 日韩伦理三区| 国产综合免费视频| 天天揉久久久久亚洲精品| 五月天丁香婷| 中文字幕制服丝袜一区二区三区| 婷婷综合五月天| 中文字幕无线精品亚洲乱码一区| 欧美在线一级va免费观看| 精品人妻一区二区三区四区不卡| 国产一二三在线观看| 日韩精品无码一区二区三区| 欧美挠脚心视频网站| 国产精品国产亚洲精品看不卡| 亚洲一级视频在线观看| 黄色网页大全| 九九热精品视频国产| 一区二区日本| 日日欢夜夜爽一区| 五月天久久久久久| 国产高清自拍视频在线观看| 久草热久草在线频| 伊人久久99| 国产成人aaa| 综合在线一区| 18禁免费无码无遮挡不卡网站| 国产又粗又猛又黄又爽| av色资源站| 亚洲精品国产一区二区| 高清亚洲高清| 在线看黄的网站| 黄色av电影在线观看| 国产自产女人91一区在线观看| 成年人在线免费| 综合欧美一区二区三区| 久久久免费精品视频| 中文精品无码中文字幕无码专区| 8x海外华人永久免费日韩内陆视频| 无码国模国产在线观看| 国产精品成久久久久| 丰满熟女一区二区三区| 欧美三级不卡| 最近免费中文字幕大全免费第三页| 色哺乳xxxxhd奶水米仓惠香| 99成人免费视频| 成人小视频在线观看免费| 日韩精品电影| 亚洲一区二区三区四区中文| 亚洲аv电影天堂网| 久久久婷婷一区二区三区不卡| xvideos成人免费中文版| 亚洲狼人综合网| 亚洲蜜臀av乱码久久精品蜜桃| 91免费版在线| 美女18一级毛片一品久道久久综合| 精品日韩在线观看| www.久久久精品| 日韩午夜av电影| 少妇久久久久久久| 激情欧美日韩一区二区| 亚洲 小说 欧美 激情 另类| www精品国产| 亚洲欧美日韩动漫| 阳光姐妹淘韩国版| 亚洲女人被黑人巨大进入| 精品电影一区二区三区| 亚洲成人一品| 欧美肥臀大乳一区二区免费视频| 青青国产视频| 伊人精品一区二区三区| 亚洲天堂网在线播放| 亚洲国产欧美不卡在线观看| 亚洲色图都市小说| 精品久久在线播放| 五码日韩精品一区二区三区视频| 中文字幕免费精品一区高清| 国产稀缺真实呦乱在线| 国产综合亚洲精品一区二| 国产精品视频看| √天堂资源地址在线官网| 国产精品免费网站在线观看| 久久久久亚洲av成人毛片韩| 久久免费精品视频在这里| 欧美极品xxx| 永久免费看片在线观看| 日本一区二区免费看| 成年人福利网站| 99久久综合国产精品二区| 国产精品久久久久久免费播放| 久久久久亚洲AV成人| 老妇喷水一区二区三区| 日本50路肥熟bbw| 国产精品99久久久久久久vr| 国产精品一区专区欧美日韩| 波多野结衣不卡| 日韩精品国产精品| 久久国产这里只有精品| 9999在线观看| 色噜噜狠狠永久免费| 日韩av大全| 亚洲成在人线av| 亚洲欧洲高清| 欧美亚洲伦理www| 亚洲无吗在线| 久久久免费在线观看| 国产精品老女人精品视频| 香蕉av一区| 波多野结衣在线一区二区| 国产精品高潮呻吟AV无码| 日韩欧美在线观看免费| 99精彩视频| 国产香蕉久久精品综合网| 日本一二三四高清不卡| 日韩av高清在线看片| 欧美视频在线第一页| 亚洲天堂第二页| 亚洲精品无人区| 亚洲wwwww| 欧美一区亚洲一区| 日韩在线理论| 成人h视频在线观看播放| 图片区小说区区亚洲五月| 最新国产麻豆精品| 欧美高跟鞋交xxxxhd| 男人精品网站一区二区三区| 电影在线观看一区二区| 国产亚洲成aⅴ人片在线观看| 国产高清自拍视频在线观看| 激情aⅴ欧美一区二区欲海潮| 欧美一级网址| 一区二区中文字幕在线观看| 亚洲一线在线观看| 91视频免费进入| 中文字幕亚洲激情| 精品久久九九| 精品国产一区二区三区麻豆免费观看完整版| 国产亚洲欧美激情| 波多野结衣在线播放一区| 丝袜亚洲另类欧美| 独立日3在线观看完整版| 最近中文av字幕在线中文| 91精品国产91久久久久久最新毛片| 清纯唯美亚洲激情| 91精品少妇一区二区三区蜜桃臀| 亚洲免费999| 激情久久五月| 亚洲日本黄色片| 黄色片网站免费| 北岛玲日韩精品一区二区三区| 97人人模人人爽人人少妇| 7777精品伊人久久久大香线蕉最新版| 久久不卡日韩美女| 欧美日韩一区二区区| 日本福利视频在线观看| 澳门黄色一级片| 国产精品毛片久久久久久久| 蓝色福利精品导航| 久久艹精品视频| 亚洲国产日韩av| 五十路熟女丰满大屁股| 日韩精品丝袜在线| 日韩精品一区二| 亚洲奶大毛多的老太婆| 成人在线国产| 亚洲午夜羞羞片| 色综合91久久精品中文字幕| 91porn在线| 亚洲精品v欧美精品v日韩精品| 国产视频精品xxxx| 女厕嘘嘘一区二区在线播放| 欧美一级bbbbb性bbbb喷潮片| 乱色精品无码一区二区国产盗| 日韩av新片网| 日韩在线视频播放| 色综合久久久久无码专区| 成人在线视频免费观看| 成人免费在线播放| 日韩大胆人体| 午夜精品久久久久久久99老熟妇| 国产999免费视频| 中文字幕第21页| 亚洲永久视频| 欧美日韩国产色视频| 欧美三级免费观看| 日韩高清一级片| 一区二区在线视频播放| 日韩av一区二区三区| 日本一区二区乱| av网址在线播放| 91成人在线精品视频| 国产极品嫩模在线视频一区| 免费黄在线观看| 日韩黄色免费电影| 狠狠综合久久av一区二区| 国产又粗又长又爽视频| 亚洲美女尤物影院| 自拍日韩亚洲一区在线| 色综合久久88色综合天天看泰| 亚洲精品成a人ⅴ香蕉片| 中文字幕一区二区中文字幕| 中文字幕欧美在线| 日韩三级电影网| 91精品国产综合久久香蕉| 成全视频全集| 激情网站在线观看| 亚洲一区视频在线观看视频| 99久久精品久久亚洲精品| 欧美gay1069大粗吊| 天堂8在线视频| 亚洲黄色片在线观看| 精品无码一区二区三区| 亚洲国产精品天堂| 免费xxxx性欧美18vr| 日本视频在线免费观看| 亚洲精品日韩综合观看成人91| 久久精品欧美一区二区| 羞羞视频网页| 久久美女精品| 日韩精品无码一区二区三区| 300部国产真实乱| av地址在线观看| 欧美午夜片欧美片在线观看| 一区二区三区在线视频免费| 亚洲免费网站在线观看| 国产浪潮av性色av小说| 神马久久一区二区三区| 青青草国产精品| 无码人妻丰满熟妇奶水区码| 91精品国产综合久| 视频一区在线免费看| 亚洲成人av在线电影| 中文字幕日本精品| 在线视频观看一区二区| 欧美熟妇交换久久久久久分类| 国产精品视频久久一区| 久久无码人妻一区二区三区| 亚洲国产精品久久网午夜小说| 99久久久国产精品| 亚洲国产精品一区二区第一页| 亚洲美女在线视频| xxxxxx在线观看| 深夜激情久久| 波多野结衣有码| 影音先锋成人资源网站| 欧美电影在线观看免费| 欧美中文字幕在线观看视频| 男女羞羞视频在线观看| 动漫成人在线观看| xvideos亚洲人网站| 91啪九色porn原创视频在线观看| 中文字幕 国产精品| 不卡的av影片| 热久久久久久久久| 久久99国产精品| 91精品久久久久久久蜜月| 拔插拔插华人永久免费| 青青青青草视频| 精品综合久久久久| 日韩三级电影网| 精品毛片免费观看| 成人91在线观看| 国产你懂的在线观看| 亚洲成人黄色小说| 波多野结衣爱爱视频| 国产夫妻自拍一区| 亚洲国产一区二区久久久777| 亚洲国产91精品在线观看| 久久国内精品一国内精品| 精品一区久久| 91一区二区| 91精品一区二区三区久久久久久| 日韩精品一区二区亚洲av性色| 久久久成人精品一区二区三区| 九色porn蝌蚪| 亚洲精品在线免费观看视频| 国产精品一区二区欧美| 最新中文字幕在线视频| 国产一区二区在线电影| 中文字幕日韩精品无码内射| 激情高潮到大叫狂喷水| 国产91在线播放九色| 亚洲成人午夜电影| 69堂精品视频在线播放| 91精品国产闺蜜国产在线闺蜜| 黄无遮挡免费网站| 亚洲精品女人久久久| 91极品视频在线| 激情视频综合网| 91麻豆产精品久久久久久夏晴子| 精品国产999久久久免费| 亚洲一区二区影视| 91天堂素人约啪| 日日夜夜精品网站| 日韩中文字幕亚洲精品欧美| 亚洲另类欧美自拍| 一区二区三区四区在线播放| 国产日本精品| 91浏览器在线观看| 亚洲网站在线免费观看| 精品影片在线观看的网站| 岛国精品一区二区| 成人手机在线播放| 色99之美女主播在线视频|