Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

C++ 棋牌算法封装,牌九,扎金花,十三水...

Notifications You must be signed in to change notification settings

haiwen007/QPAlgorithm

Repository files navigation

QPAlgorithm

C++ 棋牌算法封装,牌九,扎金花,十三水...
	cfg 文件读取
	funcC 组合函数类
	pb2Json protobuf/json格式转换
	weights 按权重计算随机概率
	
	PJ 		牌九算法	
	s13s	十三水算法,也是最复杂的一个
	zjh		炸金花算法实现
	
	十三水算法接口说明:
		//枚举牌型测试
		static void TestEnumCards(int size);
		
		//枚举牌型测试
		//filename char const* 文件读取手牌 cardsList.ini
		static void TestEnumCards(char const* filename);
		
		//玩家发牌测试
		static void TestPlayerCards();
		
		//开始游戏测试
		static void TestProtoCards();
		
		//手动摆牌测试
		static void TestManualCards();
		
		//确定牌型/比牌测试
		//先让每个玩家确定手牌三墩牌型,手动摆牌或者从枚举几组中任选一组作为手牌牌型与其他玩家比牌,
		//再玩家之间两两比牌,头敦与头敦比,中墩与中墩比,尾墩与尾墩比,并计算输赢积分(输赢多少水,统计打枪/全垒打)
		static void TestCompareCards();
		
		//手牌牌型分析(特殊牌型判断/枚举三墩组合),算法入口 /////////
		//src uint8_t const* 一副手牌(13张)
		//n int 最大枚举多少组墩(头墩&中墩&尾墩加起来为一组)
		//chairID int 玩家座椅ID
		//hand handinfo_t& 保存手牌信息
		static int AnalyseHandCards(uint8_t const* src, int len, int n, handinfo_t& hand);
		
		//单墩牌型判断(3/5张牌)
		//dt DunTy 指定为第几墩
		//src uint8_t const* 一墩5张或3张的牌
		static HandTy GetDunCardHandTy(DunTy dt, uint8_t const* src, int len);
		
		//牌型相同的src与dst比大小,牌数相同
		//src uint8_t const* 单墩牌(3/5张)
		//dst uint8_t const* 单墩牌(3/5张)
		//clr bool 是否比花色
		//ty HandTy 比较的两单墩牌的普通牌型
		static int CompareCards(uint8_t const* src, uint8_t const* dst, int n, bool clr, HandTy ty);
		
		//按照尾墩5张/中墩5张/头敦3张依次抽取枚举普通牌型
		//src uint8_t const* 手牌余牌(13/8/3),初始13张,按5/5/3依次抽,余牌依次为13/8/3
		//n int 抽取n张(5/5/3) 第一次抽5张余8张,第二次抽5张余3张,第三次取余下3张抽完
		//classify classify_t& 存放分类信息(所有重复四张/三张/二张/散牌/余牌)
		//enumList EnumTree& 存放枚举墩牌型列表数据 dt DunTy 指定为第几墩
		static void EnumCards(uint8_t const* src, int len,
			int n, classify_t& classify, EnumTree& enumList, DunTy dt);
		
		//返回组墩后剩余牌/散牌
		//src uint8_t const* 一副手牌13张
		//duns dundata_t const* 一组墩(头/中/尾墩)
		//cpy uint8_t *cpy 组墩后剩余牌 cpylen int& 余牌数量
		static void GetLeftCards(uint8_t const* src, int len,
			dundata_t const* duns, uint8_t *cpy, int& cpylen);

About

C++ 棋牌算法封装,牌九,扎金花,十三水...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%

AltStyle によって変換されたページ (->オリジナル) /