好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 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小游戲的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 男生和女生一起差差的很app下载大全| 男总裁被C双腿大开女攻高H漫画| 日本午夜精品一本在线观看| 色依依国内精品中文字幕| 日本韩国推理片免费观看网站| 亚洲精品TV久久久久久久久久| 免费观看A片毛片在线播放| 国产午夜亚洲精品不卡免下载| 张筱雨一级A片免费看| 国产18女人水真多免费看| 色噜噜综合| 我就在外面蹭蹭保证不| 多p大战人妻浪P文| 4444西西人体做爰大胆色欲AV| 男女性情视频| 国内精品久久久久影院不卡| 公交车上荫蒂添的好舒服微博正文| 《甜性涩爱》未删减| 亚洲伊人久久综合影院2021| 女扣逼| 99r热| 亚洲 自拍 精品 在线 主播| 大地资源二免费观看高清版下载| 免费看h视频| 亚欧免费视频一区二区三区| 按着她的腰疯狂的撞击h| 一本加勒比少妇人妻无码精品 | 屁屁影院??入口免费观看| 日韩欧美在线看| 老女人bbb| 曰批女人视频在线观看| 国产盗摄xXxX视频video| 精品人妻伦一品二品三品免费视频| 亚洲一区二区三区播放在线| 久久蜜视频| 农村玩乳智障女hh文小说| GOGO人体做爰AAAA| 欧美日韩成人一区一本到AV| 一级毛片a女人刺激视频免费 | 国产最爽乱婬视频播放| Xx性欧美肥妇精品久久久久久 |