婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > lua實現的2048小游戲

lua實現的2048小游戲

熱門標簽:武漢外呼防封系統多少錢 地圖標注大廈 百度地圖標注早餐區域 新岸線智能電銷機器人 怎么去除地圖標注 漳州智云呼電話機器人 個人怎么在地圖標注需要的店鋪 清朝地圖標注哈爾濱 冀州市地圖標注

lua實現的2048小游戲,只要可以運行lua腳本的環境下都可以玩。

復制代碼 代碼如下:

--[[=============================================================================
#     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  -- 每個格子占用字符數
    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 r0.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 (im and jn)
            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()

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

您可能感興趣的文章:
  • lua+love2d制作的2048游戲
  • Lua腳本語言簡明入門教程
  • Lua游戲開發教程之時區問題詳解

標簽:儋州 德宏 宣城 天門 天門 濰坊 金昌 臺灣

巨人網絡通訊聲明:本文標題《lua實現的2048小游戲》,本文關鍵詞  lua,實現,的,2048,小游戲,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《lua實現的2048小游戲》相關的同類信息!
  • 本頁收集關于lua實現的2048小游戲的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品一区二区视频| 久久综合九色综合97_久久久| 欧洲av一区二区嗯嗯嗯啊| 555www色欧美视频| 国产精品日产欧美久久久久| 午夜精品在线视频一区| 国产大片一区二区| 欧美日韩高清一区| 日韩一区有码在线| 裸体一区二区三区| 色系网站成人免费| 国产日韩精品一区二区三区在线| 无吗不卡中文字幕| 日本黄色一区二区| 中文在线免费一区三区高中清不卡| 五月天一区二区| 91国内精品野花午夜精品| 欧美激情在线一区二区| 亚洲日本一区二区三区| 国产一区二区调教| 日韩亚洲国产中文字幕欧美| 亚洲国产成人av| 色婷婷激情一区二区三区| 日韩午夜在线播放| 性久久久久久久久久久久| 不卡的av在线播放| 久久精品日产第一区二区三区高清版 | 精品国产乱码久久| 亚洲天堂久久久久久久| 国产精品亚洲一区二区三区妖精| 欧美不卡在线视频| 亚洲成a人v欧美综合天堂下载| 色av一区二区| 亚洲男人电影天堂| 波多野洁衣一区| 久久精品一区二区三区不卡牛牛| 捆绑调教一区二区三区| 欧美一级高清大全免费观看| 午夜视频一区二区| 4438x亚洲最大成人网| 亚洲成人av一区二区| 91在线播放网址| 亚洲欧洲韩国日本视频| www.99精品| 国产精品久99| 日本精品一区二区三区四区的功能| 一区二区三区在线免费视频| 欧美在线你懂得| 天天综合天天做天天综合| 欧美丰满一区二区免费视频 | 亚洲aⅴ怡春院| 欧美群妇大交群的观看方式| 青青草97国产精品免费观看| 日韩精品一区二区三区视频播放 | 亚洲精品一区二区三区精华液| 狠狠狠色丁香婷婷综合久久五月| 26uuu亚洲| 成人av网站大全| 亚洲综合在线观看视频| 一区二区在线观看视频| 久久网站最新地址| 欧美日韩美女一区二区| 另类小说图片综合网| 久久九九影视网| 成人在线综合网站| 久久久青草青青国产亚洲免观| 99国内精品久久| 久久99国产精品免费网站| 91精品国产91久久综合桃花| 亚洲午夜视频在线| 91福利在线导航| 亚洲福利一区二区三区| 精品国内二区三区| 成人丝袜18视频在线观看| 中文字幕亚洲区| 欧美无砖专区一中文字| 精品一区二区在线播放| 国产精品电影院| 91豆麻精品91久久久久久| 日韩制服丝袜先锋影音| 国产午夜三级一区二区三| 在线亚洲一区观看| 亚洲视频香蕉人妖| 日韩精品一区国产麻豆| av色综合久久天堂av综合| 手机精品视频在线观看| 老司机精品视频导航| 色噜噜狠狠色综合中国| 色婷婷综合久久久| 在线观看区一区二| 亚洲宅男天堂在线观看无病毒| 972aa.com艺术欧美| 亚洲一区视频在线观看视频| www国产亚洲精品久久麻豆| 99久久精品国产导航| 午夜久久电影网| 亚洲影视资源网| 99re这里都是精品| voyeur盗摄精品| 国产一区二区三区高清播放| 日韩精品视频网| 黑人精品欧美一区二区蜜桃| 成人av在线影院| 不卡的av中国片| 色成年激情久久综合| 欧美日韩国产免费一区二区| 欧美日韩在线一区二区| 欧美喷潮久久久xxxxx| 久久综合九色综合欧美98| 欧美性一区二区| 99久久伊人精品| 成人aaaa免费全部观看| 国产麻豆午夜三级精品| 成人午夜视频网站| 国产1区2区3区精品美女| 成人免费毛片a| 成人在线视频一区| 北岛玲一区二区三区四区| 91网站最新网址| 91国偷自产一区二区三区观看| 色婷婷激情综合| 欧美日韩在线播放三区四区| 日韩一级视频免费观看在线| 91精品欧美福利在线观看| 亚洲精品一区二区在线观看| 久久久久亚洲蜜桃| 国产精品一区二区你懂的| 大白屁股一区二区视频| 不卡影院免费观看| 欧美亚洲一区二区在线| 在线观看日产精品| 欧美精品一区二区久久婷婷| 亚洲成a人v欧美综合天堂下载 | 成人免费小视频| 亚洲三级电影网站| 夜夜精品视频一区二区| 天堂av在线一区| 激情深爱一区二区| 不卡av免费在线观看| 日本韩国精品在线| 日韩精品一区二区三区三区免费| 精品国产髙清在线看国产毛片| 国产午夜精品福利| 一色屋精品亚洲香蕉网站| 午夜免费欧美电影| 成人免费高清视频| 欧美日韩aaaaa| 国产精品你懂的在线欣赏| 亚洲欧美日韩国产综合| 首页国产欧美日韩丝袜| 粉嫩13p一区二区三区| 在线观看av不卡| 亚洲国产视频直播| 亚洲成av人影院在线观看网| 亚洲宅男天堂在线观看无病毒| 精品国产亚洲在线| 国产精品情趣视频| 亚洲成av人影院在线观看网| 蜜桃视频第一区免费观看| 91丨九色丨蝌蚪丨老版| 欧美日韩高清一区二区不卡| 国产偷v国产偷v亚洲高清| 中文字幕av不卡| 老司机免费视频一区二区三区| 风间由美一区二区av101| 欧美日韩国产另类不卡| 国产精品乱码久久久久久| 日韩国产在线一| 91福利在线播放| xfplay精品久久| 免费观看久久久4p| 色综合久久久久网| 久久精品一二三| 精品一区二区三区视频| 91国产成人在线| 日韩理论片在线| 国产另类ts人妖一区二区| 欧美一区二区三区不卡| 亚洲精品大片www| 99精品欧美一区| 国产精品全国免费观看高清| 国产乱码精品一区二区三| 欧美一级二级三级乱码| 一区二区激情小说| 日本高清免费不卡视频| 国产精品免费久久久久| 国产一区二区三区观看| 欧美tickle裸体挠脚心vk| 日韩精品五月天| 91精品国产欧美一区二区| 亚洲自拍偷拍麻豆| 色狠狠一区二区| 亚洲精品你懂的| 91麻豆福利精品推荐| 1区2区3区国产精品| 国产福利一区在线观看| 亚洲国产精品传媒在线观看| 激情综合色综合久久综合| 久久新电视剧免费观看| 国产精品亚洲第一区在线暖暖韩国|