高效查表判断胡牌算法的lua版本

本文介绍了一种源于日本论坛的麻将胡牌判断算法,原为Java实现,现已移植为Lua版本。利用查表技术,该算法在Lua中运行100万次仅耗时7秒,测试环境为Linux,单核CPU,2G内存。此外,作者还提及了一个基于此算法的休闲小游戏,供玩家释放压力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源于日本论坛的一套用于麻将的判断胡牌算法,运用查表方式实现。原文链接(http://hp.vector.co.jp/authors/VA046927/mjscore/mjalgorism.html)

原算法是java实现,这里移植为lua版本。

移植为lua版本的代码如下

 

local M = {}

local MAN1 = 0
local MAN2 = 1
local MAN3 = 2
local MAN4 = 3
local MAN5 = 4
local MAN6 = 5
local MAN7 = 6
local MAN8 = 7
local MAN9 = 8

local PIN1 = 9
local PIN2 = 10
local PIN3 = 11
local PIN4 = 12
local PIN5 = 13
local PIN6 = 14
local PIN7 = 15
local PIN8 = 16
local PIN9 = 17

local SOU1 = 18
local SOU2 = 19
local SOU3 = 20
local SOU4 = 21
local SOU5 = 22
local SOU6 = 23
local SOU7 = 24
local SOU8 = 25
local SOU9 = 26

local TON = 27
local NAN = 28
local SHA = 29
local PEI = 30
local HAK = 31
local HAT = 32
local CHU = 33

local PRINT_MAP = {
    [0] = "一万",
    [1] = "二万",
    [2] = "三万",
    [3] = "四万",
    [4] = "五万",
    [5] = "六万",
    [6] = "七万",
    [7] = "八万",
    [8] = "九万",
    [9] = "一条",
    [10] = "二条",
    [11] = "三条",
    [12] = "四条",
    [13] = "五条",
    [14] = "六条",
    [15] = "七条",
    [16] = "八条",
    [17] = "九条",
    [18] = "一筒",
    [19] = "二筒",
    [20] = "三筒",
    [21] = "四筒",
    [22] = "五筒",
    [23] = "六筒",
    [24] = "七筒",
    [25] = "八筒",
    [26] = "九筒",
    [27] = "东风",
    [28] = "南风",
    [29] = "西风",
    [30] = "北风",
    [31] = "红中",
    [32] = "发财",
  
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值