lua实战斗地主思路

--[[

    题目:斗地主

    1.初始化卡牌

    2.洗牌

    3.选牌

    4.分发牌到3个玩家手里

]]

--定义所有卡牌

local cards = {

    [1]="黑桃A",

    [2]="黑桃2",

    [3]="黑桃3",

    [4]="黑桃4",

    [5]="黑桃5",

    [6]="黑桃6",

    [7]="黑桃7",

    [8]="黑桃8",

    [9]="黑桃9",

    [10]="黑桃10",

    [11]="黑桃J",

    [12]="黑桃Q",

    [13]="黑桃K",

    [14]="红桃A",

    [15]="红桃2",

    [16]="红桃3",

    [17]="红桃4",

    [18]="红桃5",

    [19]="红桃6",

    [20]="红桃7",

    [21]="红桃8",

    [22]="红桃9",

    [23]="红桃10",

    [24]="红桃J",

    [25]="红桃Q",

    [26]="红桃K",

    [27]="梅花A",

    [28]="梅花2",

    [29]="梅花3",

    [30]="梅花4",

    [31]="梅花5",

    [32]="梅花6",

    [33]="梅花7",

    [34]="梅花8",

    [35]="梅花9",

    [36]="梅花10",

    [37]="梅花J",

    [38]="梅花Q",

    [39]="梅花K",

    [40]="方片A",

    [41]="方片2",

    [42]="方片3",

    [43]="方片4",

    [44]="方片5",

    [45]="方片6",

    [46]="方片7",

    [47]="方片8",

    [48]="方片9",

    [49]="方片10",

    [50]="方片J",

    [51]="方片Q",

    [52]="方片K",

    [53]="大王",

    [54]="小王",

}

--定义玩家A

local A={}

--定义玩家B

local B={}

--定义玩家C

local C={}

--定义牌的顺序

local cardlist = {}

--初始化牌,0~54到list

local function InitCard(cardlist)

    for i=1, 54 do

        table.insert(cardlist,i)

    end

end

--获取详细卡牌数据

local function GetCardDetail(num)

    if num <= 0 or num > 54 then return nil end

    return cards[num]

end

--选牌

--随机卡牌index

--移除卡牌index

--返回卡牌index

local function SelectCard(cardlist)

    if #cardlist==0 then return -1 end

    --随机种子

    math.randomseed( os.time() ) math.random()

    local cardNum = math.random(1,#cardlist)

    local result = cardlist[cardNum]

    table.remove(cardlist,cardNum)

    return result,#cardlist

end


 

--发牌,每人17张

local function faPai()

    for i = 1, 17, 1 do

        --给玩家A发牌

        local result1, num = SelectCard(cardlist)

        table.insert(A,result1)

   

        --给玩家B发牌

        local result2, num = SelectCard(cardlist)

        table.insert(B,result2)

   

        --给玩家C发牌

        local result3, num = SelectCard(cardlist)

        table.insert(C,result3)

    end

end



 

--打印玩家A的牌

local function printA()

    for index, value in ipairs(A) do

        print("A = ", GetCardDetail(value) )

    end

end

local function printB()

    --打印玩家B的牌

    for index, value in ipairs(B) do

        print("B = ", GetCardDetail(value) )

    end

end

local function printC()

    --打印玩家C的牌

    for index, value in ipairs(C) do

        print("C = ", GetCardDetail(value) )

    end

end

  --打印底牌

local function DiPai()

    for index, value in ipairs(cardlist) do

        print("剩下三张牌 = ", GetCardDetail(value) )

    end

end

--初始化卡牌

InitCard(cardlist)

--发牌

faPai()

--打印玩家A

printA()

--打印玩家A

printB()

--打印玩家A

printC()

--底牌

DiPai()

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
luac转lua工具是用于将Lua源代码从编译过的二进制格式(.luac文件)转换为可读的文本格式(.lua文件)的工具。通常,在编写Lua代码时,我们使用文本编辑器来编写和修改代码。但有时,为了加密和保护代码的安全性,我们需要将代码编译为.luac文件,这样代码将以二进制形式存储,并且只能被luavm解释执行。然而,这种编译的代码不易于阅读和修改。 使用luac转lua工具,我们可以将.luac文件转换为易读的.lua文件。这对于理解、修改和维护代码非常有用。此工具解析.luac文件,并将其反编译为文本形式,使开发人员能够查看代码的实际内容和结构。一旦转换完成,我们就可以使用任何文本编辑器来修改代码,并将其保存为.lua文件。 通常,使用此工具的主要步骤如下: 1. 下载并安装luac转lua工具到你的计算机上。 2. 打开工具,选择要转换的.luac文件。 3. 设置目标文件名和保存位置。 4. 点击转换按钮,等待工具完成转换过程。 5. 一旦转换完成,你就可以使用任何文本编辑器打开保存的.lua文件并进行修改。 需要注意的是,由于.luac文件是编译的二进制文件,转换后的.lua文件可能不会与原始的.lua文件完全相同。某些元信息,如行号和注释,可能会丢失。此外,由于代码的解释执行也可能有所不同,因此在修改代码之前,你应该先进行适当的测试和验证。 总而言之,luac转lua工具是帮助开发人员将编译的.luac文件转换为可读的.lua源代码文件的实用工具,以方便代码的理解、修改和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值