本文主要是介绍Lua--棋牌游戏开发(概念性设计二,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Lua–棋牌游戏开发(概念性设计二)
1:获取"棋牌工具.lua"文件,文件后return CardUtils
参考上一篇博文链接:Lua–棋牌游戏开发(概念性设计一)
local CardUtils = require "棋牌工具" -- 加载文件
2:牌的类型定义
local CardsType =
{-- 键值对 = 值Single = 1, -- 单张DuiZi = 2, -- 对子ShunZi = 3, -- 顺子LianDui = 4, -- 连对Three = 5, -- 三张ThreeTakeOne = 6, -- 三带一ThreeTakeTwo = 7, -- 三带二FourTakeTwo = 8, -- 四带二FeiJi = 9, -- 三张(333444)/三张带一(33344455/33344445)/三带二(3334445566)Boom = 10, -- 炸弹BoomBoom = 11, -- 王炸None = 12 -- 不符合牌型
}
3:记牌器:将选中的牌转换成(牌值对应数量的键值对)
local DDZLogic = {}function DDZLogic:toCardMap(selectedCards)local map = {}-- 键值size对应选中牌的数量map.size = #selectedCardsfor i = 1,20 domap[i] = 0endfor i = 1,#selectedCards dolocal value = CardUtils:getCardValue(selectedCards[i])map[value] = map[value] + 1endreturn map
end
4:判断是否是单张
function DDZLogic:isSingle(cards) -- cards:记牌后的结果return 1 == cards.size
end
5:判断是否是对子
function DDZLogic:isDuiZi(cards)-- 判断张数if cards.size ~= 2 thenreturn falseend-- 遍历所有的牌值对应的数量,如果不等于0,判断是否等于2for i = 1,20 dolocal cardNum = cards[i] -- 得到当前牌值对应的数量if cardNum ~= 0 thenreturn 2 == cardNumendend
end
6:判断是否是顺子
function DDZLogic:isShunZi(cards)if
这篇关于Lua--棋牌游戏开发(概念性设计二的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!