Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@
*.ipch
*.suo
*.log
*.pch
*.pch
.idea
mjlib_go/tbl
mjlib_go/tbl1
52 changes: 7 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,14 @@
# qipai
# qiai

棋牌的胡牌算法,特殊牌型判断算法
fork yuanyunfeng大神的库,这里在之前的版本上只维护golang版本

1、跑胡子算法

实现:
1 所有代码按照go的语言规范和命名规范重写和排版

有C++版(基于递归,回溯)。
2 方法重新规划,包重新规划

lua版(基于查表)。
3 提供新的序列化参数选择,新的序列化方式写文件可以减少30%的内存

2、高效的麻将胡牌算法,能处理任意张赖子:

速度:1S左右处理100万次每次四个赖子的麻将判胡;5秒处理1亿次八个赖子判胡(golang虚拟机上实测)。

实现:

基于花色切分,然后查表。

有多种语言版本:lua、c++、c#、golang、js、java、python。

3、无敌的拆牌判胡算法,不占用额外内存,速度、简洁度超过查表法。支持任意赖子数量。

4、特殊牌型判断:一条龙、掐张、七对、碰碰胡、十三幺、单吊、大吊车、清一色、缺门、门清。

5、tips: 深圳、广州范围提供上门讲解、替换现有算法服务,QQ:273461474。

6、使用的项目或公司(不完全统计):

易县麻将: https://fir.im/yizhouqipai (8个赖子)

乾娱科技: http://www.qygames.net/

陌陌: https://www.immomo.com/

探娱互动: http://www.tanyu.mobi/

雪狼网络: http://www.23xl.com/

深圳大麦网络科技:http://www.59iwan.cn

东溪控股有限公司: http://www.dxbloc.com

河南欢乐符(信阳麻将): http://www.hlf100.com

上海博羡软件: www.sbxgame.com

长沙麻将:http://www.ngqp123.com/

郑州胜讯
4 查胡算法没动,生成表的算法基本没动,改了gen1113的算法,用了新的dp算法,减少没必要的冗余,benchmark比较大约优化了40%

5 补充了单元测试和性能测试,保证结果一致
11 changes: 0 additions & 11 deletions doc/不带赖子斗地主、跑得快牌型判断比较.txt

This file was deleted.

40 changes: 0 additions & 40 deletions doc/不带鬼牌的查表胡牌算法.txt

This file was deleted.

35 changes: 0 additions & 35 deletions doc/不带鬼牌的选将拆分算法.txt

This file was deleted.

8 changes: 0 additions & 8 deletions doc/基于回溯的不带赖子的跑胡子判胡.txt

This file was deleted.

56 changes: 0 additions & 56 deletions doc/带鬼牌的查表胡牌算法.txt

This file was deleted.

49 changes: 0 additions & 49 deletions doc/带鬼牌的选将拆分法.txt

This file was deleted.

Binary file removed doc/打赏.png
Binary file not shown.
39 changes: 39 additions & 0 deletions global/api.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package mjlib

import "qipai/mjlib_go"

var GlobalTableMgr *mjlib.TableMgr

func Init(){
GlobalTableMgr=&mjlib.TableMgr{}
GlobalTableMgr.Init()
GlobalTableMgr.Gen()
}

func GetHuInfo(cards []int, curCard int, gui1 int, gui2 int) bool {
return mjlib.GetHuInfo(GlobalTableMgr,cards,curCard,gui1,gui2)
}

func DumpTable(dir string,compress bool) error{
err:=GlobalTableMgr.DumpTable(dir,compress)
if err!=nil{
return err
}
err=GlobalTableMgr.DumpFengTable(dir,compress)
if err!=nil{
return err
}
return nil
}

func LoadTable(dir string,compress bool) error{
err:=GlobalTableMgr.LoadTable(dir,compress)
if err!=nil{
return err
}
err=GlobalTableMgr.LoadFengTable(dir,compress)
if err!=nil{
return err
}
return nil
}
Loading