最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【CSOL】2048挑戰(zhàn)

2023-08-08 21:01 作者:柚呦子丶  | 我要投稿

if UI then


? ? Screen = {x = UI.ScreenSize().width, y = UI.ScreenSize().height}

? ? Ui_BoardText = {}

? ? Ui_BoardBox = {}

? ? -- 初始化游戲棋盤(pán)

? ? function initBoard()

? ? ? ? board = {}

? ? ? ? for i = 1, 4 do

? ? ? ? ? ? board[i] = {}

? ? ? ? ? ? for j = 1, 4 do

? ? ? ? ? ? ? ? board[i][j] = 0

? ? ? ? ? ? end

? ? ? ? end

? ? end


? ? -- 在空白位置隨機(jī)生成一個(gè)新的數(shù)字(2或4)

? ? function generateNewNumber()

? ? ? ? local emptyCells = {}

? ? ? ? for i = 1, 4 do

? ? ? ? ? ? for j = 1, 4 do

? ? ? ? ? ? ? ? if board[i][j] == 0 then

? ? ? ? ? ? ? ? ? ? table.insert(emptyCells, {row = i, col = j})

? ? ? ? ? ? ? ? end

? ? ? ? ? ? end

? ? ? ? end

? ? ? ??

? ? ? ? if #emptyCells > 0 then

? ? ? ? ? ? local randomCell = emptyCells[math.random(#emptyCells)]

? ? ? ? ? ? board[randomCell.row][randomCell.col] = math.random() < 0.9 and 2 or 4

? ? ? ? end

? ? end


? ? -- 檢查游戲是否結(jié)束(無(wú)法再進(jìn)行移動(dòng))

? ? function isGameOver()

? ? ? ? for i = 1, 4 do

? ? ? ? ? ? for j = 1, 4 do

? ? ? ? ? ? ? ? if board[i][j] == 0 then

? ? ? ? ? ? ? ? ? ? return false

? ? ? ? ? ? ? ? end

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? if i < 4 and board[i][j] == board[i + 1][j] then

? ? ? ? ? ? ? ? ? ? return false

? ? ? ? ? ? ? ? end

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? if j < 4 and board[i][j] == board[i][j + 1] then

? ? ? ? ? ? ? ? ? ? return false

? ? ? ? ? ? ? ? end

? ? ? ? ? ? end

? ? ? ? end

? ? ? ??

? ? ? ? return true

? ? end


? ? -- 打印當(dāng)前游戲棋盤(pán)

? ? function printBoard()

? ? ? ? for i = 1, 4 do

? ? ? ? ? ? for j = 1, 4 do

? ? ? ? ? ? ? ? print(board[i][j] .. "\t")

? ? ? ? ? ? end

? ? ? ? ? ? print()

? ? ? ? end

? ? ? ??

? ? end


? ? function DrawBoard()

? ? ? ? for i=1,4 do

? ? ? ? ? ? for j=1,4 do


? ? ? ? ? ? ? ? Ui_BoardBox[i] = UI.Box.Create()

? ? ? ? ? ? ? ? Ui_BoardText[i]= UI.Text.Create()

? ? ? ? ? ? ? ? Ui_BoardBox[i]:Set({x = Screen.x/3+i*80, y = Screen.y/3+j*80, width = Screen.x/20, height = Screen.y/15, r = 255, g = 255, b = 255, a = 255})??

? ? ? ? ? ? ? ? if board[i][j]~=0 then

? ? ? ? ? ? ? ? ? ? ? Ui_BoardText[i]:Set({

? ? ? ? ? ? ? ? ? ? ? ? text=tostring(board[i][j]),

? ? ? ? ? ? ? ? ? ? ? ? align='center',

? ? ? ? ? ? ? ? ? ? ? ? font='medium',

? ? ? ? ? ? ? ? ? ? ? ? x=Screen.x/3+i*80,

? ? ? ? ? ? ? ? ? ? ? ? y=Screen.y/3+j*80,

? ? ? ? ? ? ? ? ? ? ? ? width=Screen.x/20,

? ? ? ? ? ? ? ? ? ? ? ? height=Screen.y/15,

? ? ? ? ? ? ? ? ? ? ? ? r=0,g=0,b=0,a=255

? ? ? ? ? ? ? ? ? ? ? })

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? Ui_BoardText[i]:Set({

? ? ? ? ? ? ? ? ? ? ? ? text="",

? ? ? ? ? ? ? ? ? ? ? ? align='center',

? ? ? ? ? ? ? ? ? ? ? ? font='medium',

? ? ? ? ? ? ? ? ? ? ? ? x=Screen.x/3+i*80,

? ? ? ? ? ? ? ? ? ? ? ? y=Screen.y/3+j*80,

? ? ? ? ? ? ? ? ? ? ? ? width=Screen.x/20,

? ? ? ? ? ? ? ? ? ? ? ? height=Screen.y/15,

? ? ? ? ? ? ? ? ? ? ? ? r=0,g=0,b=0,a=255

? ? ? ? ? ? ? ? ? ? ? })? ??

? ? ? ? ? ? ? ? end? ? ? ? ? ? ? ??

? ? ? ? ? ? end

? ? ? ? end?

? ? end

? ? Framework.UIPlug.OnUpdate:Register(function()

? ? ? ? DrawBoard()

? ? end)


? ? -- 合并相同的數(shù)字

? ? function mergeNumbers(row, col, drow, dcol)

? ? ? ? if board[row][col] == 0 then

? ? ? ? ? ? return

? ? ? ? end


? ? ? ? local currentRow, currentCol = row, col

? ? ? ? local nextRow, nextCol = row + drow, col + dcol


? ? ? ? while nextRow >= 1 and nextRow <= 4 and nextCol >= 1 and nextCol <= 4 do

? ? ? ? ? ? if board[nextRow][nextCol] == 0 then

? ? ? ? ? ? ? ? -- 如果下一個(gè)方塊是空白,則繼續(xù)前進(jìn)

? ? ? ? ? ? ? ? currentRow = nextRow

? ? ? ? ? ? ? ? currentCol = nextCol

? ? ? ? ? ? ? ? nextRow = currentRow + drow

? ? ? ? ? ? ? ? nextCol = currentCol + dcol

? ? ? ? ? ? elseif board[nextRow][nextCol] == board[currentRow][currentCol] then

? ? ? ? ? ? ? ? -- 如果下一個(gè)方塊與當(dāng)前方塊相等,則合并兩個(gè)方塊

? ? ? ? ? ? ? ? board[currentRow][currentCol] = board[currentRow][currentCol] * 2

? ? ? ? ? ? ? ? board[nextRow][nextCol] = 0

? ? ? ? ? ? ? ? break

? ? ? ? ? ? else

? ? ? ? ? ? ? ? -- 如果下一個(gè)方塊與當(dāng)前方塊不相等,則停止移動(dòng)

? ? ? ? ? ? ? ? break

? ? ? ? ? ? end

? ? ? ? end

? ? ? ??

? ? ? ? -- 繼續(xù)前進(jìn)直到遇到邊界或空白方塊

? ? ? ? while nextRow >= 1 and nextRow <= 4 and nextCol >= 1 and nextCol <= 4 and board[nextRow][nextCol] == 0 do

? ? ? ? ? ? currentRow = nextRow

? ? ? ? ? ? currentCol = nextCol

? ? ? ? ? ? nextRow = currentRow + drow

? ? ? ? ? ? nextCol = currentCol + dcol

? ? ? ? end

? ? ? ??

? ? ? ? -- 將當(dāng)前方塊移動(dòng)到空白方塊的位置

? ? ? ? if currentRow ~= row or currentCol ~= col then

? ? ? ? ? ? board[currentRow][currentCol] = board[row][col]

? ? ? ? ? ? board[row][col] = 0

? ? ? ? end

? ? end

? ? --[[

? ? function mergeNumbers(row, col, drow, dcol)

? ? ? ? if board[row][col] == 0 then

? ? ? ? ? ? return

? ? ? ? end


? ? ? ? local currentRow, currentCol = row, col

? ? ? ? local nextRow, nextCol = row + drow, col + dcol


? ? ? ? -- 判斷下一個(gè)方塊是否存在且相等

? ? ? ? while board[nextRow] and board[nextRow][nextCol] and board[currentRow][currentCol] == 0 do

? ? ? ? ? ? -- 移動(dòng)當(dāng)前方塊到下一個(gè)方塊位置

? ? ? ? ? ? board[currentRow][currentCol] = board[nextRow][nextCol]

? ? ? ? ? ? board[nextRow][nextCol] = 0


? ? ? ? ? ? currentRow = nextRow

? ? ? ? ? ? currentCol = nextCol

? ? ? ? ? ? nextRow = nextRow + drow

? ? ? ? ? ? nextCol = nextCol + dcol

? ? ? ? end


? ? ? ? -- 如果下一個(gè)方塊存在且值相等,則合并兩個(gè)方塊

? ? ? ? if board[nextRow] and board[nextRow][nextCol] and board[currentRow][currentCol] == board[nextRow][nextCol] then

? ? ? ? ? ? board[currentRow][currentCol] = board[currentRow][currentCol] * 2

? ? ? ? ? ? board[nextRow][nextCol] = 0

? ? ? ? end

? ? end

? ? ]]

? ? -- 移動(dòng)棋盤(pán)

? ? Framework.UIPlug.OnKeyDown:Register(function(inputs)

? ? ? ? if inputs[UI.KEY.W]==true then

? ? ? ? ? ? moveBoard("left")

? ? ? ? ? ? printBoard()? --更新棋盤(pán)

? ? ? ? end

? ? ? ? if inputs[UI.KEY.A]==true then

? ? ? ? ? ? moveBoard("up")

? ? ? ? ? ? printBoard()

? ? ? ? end

? ? ? ? if inputs[UI.KEY.S]==true then

? ? ? ? ? ? moveBoard("right")

? ? ? ? ? ? printBoard()

? ? ? ? end

? ? ? ? if inputs[UI.KEY.D]==true then

? ? ? ? ? ? moveBoard("down")

? ? ? ? ? ? printBoard()

? ? ? ? end

? ? end)



? ? Framework.UIPlug.OnChat:Register(function(msg,signal)

? ? ? ? if msg=="重新開(kāi)始" then

? ? ? ? ? ? initBoard()--初始化棋盤(pán)

? ? ? ? end

? ? end)

? ? -- 移動(dòng)棋盤(pán)

? ? function moveBoard(direction)

? ? ? ? if direction == "up" then

? ? ? ? ? ? -- 向上移動(dòng)棋盤(pán)

? ? ? ? ? ? for i = 2, 4 do

? ? ? ? ? ? ? ? for j = 1, 4 do

? ? ? ? ? ? ? ? ? ? mergeNumbers(i, j, -1, 0)

? ? ? ? ? ? ? ? end

? ? ? ? ? ? end

? ? ? ? elseif direction == "down" then

? ? ? ? ? ? -- 向下移動(dòng)棋盤(pán)

? ? ? ? ? ? for i = 3, 1, -1 do

? ? ? ? ? ? ? ? for j = 1, 4 do

? ? ? ? ? ? ? ? ? ? mergeNumbers(i, j, 1, 0)

? ? ? ? ? ? ? ? end

? ? ? ? ? ? end

? ? ? ? elseif direction == "left" then

? ? ? ? ? ? -- 向左移動(dòng)棋盤(pán)

? ? ? ? ? ? for i = 1, 4 do

? ? ? ? ? ? ? ? for j = 2, 4 do

? ? ? ? ? ? ? ? ? ? mergeNumbers(i, j, 0, -1)

? ? ? ? ? ? ? ? end

? ? ? ? ? ? end

? ? ? ? elseif direction == "right" then

? ? ? ? ? ? -- 向右移動(dòng)棋盤(pán)

? ? ? ? ? ? for i = 1, 4 do

? ? ? ? ? ? ? ? for j = 3, 1, -1 do

? ? ? ? ? ? ? ? ? ? mergeNumbers(i, j, 0, 1)

? ? ? ? ? ? ? ? end

? ? ? ? ? ? end

? ? ? ? end

? ? ? ??

? ? ? ? generateNewNumber()

? ? end


? ? -- 游戲主循環(huán)

? ? function gameLoop()

? ? ? ? initBoard()

? ? ? ? generateNewNumber()

? ? ? ? local direction = ""

? ? ? ? printBoard()

? ? end


? ? -- 啟動(dòng)游戲,傳入移動(dòng)方向參數(shù)

? ? gameLoop("up") -- 這里可以傳入上下左右四個(gè)方向之一,例如:"up", "down", "left", "right"? ??

end


【CSOL】2048挑戰(zhàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
天等县| 阿勒泰市| 吉安县| 庆安县| 建宁县| 周口市| 永顺县| 武穴市| 平邑县| 大余县| 马龙县| 纳雍县| 桂东县| 淮北市| 稷山县| 繁昌县| 东乌珠穆沁旗| 平遥县| 门头沟区| 青河县| 阳春市| 昆山市| 吉木萨尔县| 乌兰县| 驻马店市| 沿河| 浏阳市| 隆化县| 阳东县| 北海市| 朝阳市| 资兴市| 佛教| 龙游县| 昌都县| 本溪市| 澄迈县| 溆浦县| 安塞县| 定州市| 曲阜市|