犹豫工作和自己学习了一些新的东西,今天打开博客吓自己一跳,原来自己这么久没有更新博客了。看来以后还是要坚持每周最少写一篇博客啊。在讲解麻将胡牌算法之前,先说说为什么写这么一篇博客吧。在做项目中,其实前辈们早就封装好了一些胡牌的检测算法,不过我还算是一个比较喜欢刨根问到底的人,每次调用别人写好的算法的时候总是想知道算法的具体实现。然而在看算法具体实现的时候,发现里面一个二维矩阵有点复杂,并且没有没有
这篇博客主要是记录在学习java集合中,使用相关知识点完成XX(哈哈 不能暴露了)麻将的准备牌、洗牌、发牌、看牌基本功能。 ####需求分析A:XX麻将的功能需求分析 a:具体规则: 1. 组装136张麻将 条、筒、万加到一起的数目是108张 东、西、南、北风、红中、白皮、发财是28张,总共136张 2. 将136张牌顺序打乱
  声明: 算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将胡牌算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 .   算法理解之后就不难了 , 下面开始详细的阐述了.1. 将麻将抽象为数字  数字 {01 ~ 09} 表示  {1 ~ 9} 筒  数字 {11 ~ 19} 表示  
麻将牌型主是AA,AAA,AAAA,ABC的组合构成胡牌,可以把牌分为明牌和手牌,明牌是指杠,吃,碰之后的牌,手牌指未露出来的牌,听牌只需要算手牌即可。听牌可以分为有对将,其它为圆句,只留一个需要圆句,吃牌胡,或者碰牌胡。如果无对将,则需所有为圆句和一张单牌吊将。 方法一:先取一对将,再把剩下的牌递归找整句,直到只剩两张牌,算出缺口牌即为听的牌。中间任意一步失败也该组合失败。先找整句,剩
一般玩麻将都是四个人,遇到 “三缺一”怎么办?大多数情况下,玩家只好等待或叫人,这无疑增加了玩家的等待时间,同时也减缓了房卡的消耗速度。其实四个人并不是玩麻
原创 2023-05-16 21:42:47
219阅读
之前用vba写过,当时的思路不清楚,也没有python这样强大的工具,写了好长时间。现在想想,真的是太太太落后了。磨刀不误砍柴工,学习还是大有裨益的。麻将和牌规则:胡牌的基础牌型: (1)11、123、123、123、123 (2)11、123、123、123、111(1111,下同) (3)11、123、123、111、111 (4)11、123、111、111、111 (5)11、111、11
姐姐:你去帮我和闺蜜打麻将?学霸哥哥:可是我不会打麻将呀!姐姐:你不是学霸吗?我教你一个麻将公式,我闺蜜可是单身哟!学霸哥哥:什么公式?姐姐:麻将胡牌公式: AAA*M+ABC*N+BB,WMN可以为任意数,胡牌里面有且只有一对!学霸哥哥:原来麻将还可以这样玩。好的 地址微信发给我,马上到!通过这个对话,我想大家应该都能明白麻将的胡牌公式是怎么样了,如果只是简单的麻将胡牌,我想算法实现起来就比较的
import java.util.List;   import java.util.Scanner;         public class Main {          public&
c
原创 2016-09-11 10:45:41
1183阅读
题目描述麻将是一个中国原创的4人玩的游戏。这个游戏有很多变种,但本题只考虑一种有136张牌的玩法。这136张牌所包含的内容如下。饼(筒)牌:每张牌包括一系列题目描述麻将是一个中国原创的4人玩的游戏。这个游戏有很多变种,但本题只考虑一种有136张牌的玩法。这136张牌所包含的内容如下。饼(筒)牌:每张牌包括一系列点,每个点代表一个铜钱。本题中用1T、2T、3T、4T、5T、6T、7T、8T、9T表示
麻将胡牌算法1、麻将的基本规则2、胡牌算法解析3、麻将的表示方法一副完整的麻将表示方法手牌表示方法4、核心代码 1、麻将的基本规则常见的麻将一共有三种花色,万、条、筒。每种花色的牌都有1~9个数值,每种数值的牌有4张,总共有493=108张牌。胡牌时手牌必须满足(不包含特殊牌型,如对对胡,大对子等)mABC+nDDD+EE(m >=0,n>=0),即一对将牌除开,剩余的牌全能组成顺子
# coding=gbk """ 程序功能: 洗牌:将牌进行随机排列 发牌:1、初始化发牌,一下发两张 2、要牌,一次发一张 计分:2到10正常,JQK都是10分,考虑A的特殊性 胜负判断:比较电脑和玩家的分数大小,并记录 是否要牌 继续还是退出 """ # 洗牌函数 shuffle作用是随机打乱列表 from random import shuffle import rando
题目链接: http://bailian.openjudge.cn/practice/2802/Description  在一种”麻将”游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。最后如果能将所有牌移出平板,则算过关。   这个游戏中的一个关键问题是:两张牌之间
转载 2017-07-28 17:11:00
80阅读
2评论
#include"a.h" int main() { int pai[14] = { 0, }; int i = 0; int sum = 0; //总的分这里默认为三家 int num = 0; //应该所得到得分数 printf("请选择底金:"); scanf("%d",&DiJ); printf("本局底金为:%d\n", DiJ); /*********
显示人员信息对于游戏界面需要显示对手玩家的个人信息,最起码的是任务的名称,或者头像,在我的设计中,其中数据库创建了(使用了Mybatis所有表都不具备外键,只具备主键,使用关联字段进行逻辑关联)房间表游戏表玩家表其中使用房间表的mainID(房间号)作为和玩家表的关联首先用户登录,在首页可以看见游戏房间列表,可以选择创建房间(创建新的房间,并根据当前user创建Player,将Player设置到房
算法思想胡的条件必须有一对将(两个相同的牌)除了将,其余牌必须为顺子或刻子算法(精简版)提取所有将牌去除所有刻子去除所有顺子没有牌了,胡;还有牌,不胡算法(完整版)提取所有将牌(如果要胡,将牌是必须存在的,而且将牌可能会有多种)取一对将牌,如果没有将牌了,则表示不能胡将手牌去除选取的将牌将剩余的手牌去除所有的刻子,去除所有的刻子后如果手牌没有了,则胡;手牌还有,则继续第5步判断将手牌去除所有的顺子
转载 1月前
17阅读
/** * 手牌 * *@authorzkpursuit */public classHandCards{ /** * 获取牌号最左边的一位数,如果牌为筒、条、万,则返回值为牌类型数值 * *@paramcard 牌号 *@return牌号从左至右第一位数(十位数) */ publicfinalstaticintgetCardLeftValue(intcard)
实现简单的麻将游戏描述:实现功能点实现麻将的准备牌、洗牌、发牌、看牌知识点集合知识项目思路思路介绍Icon麻将的功能需求分析具体规则:组装136张麻将条、筒、万加到一起的数目是108张东、西、南、北风、红中、白皮、发财是28张,总共136张将136张牌顺序打乱 4.将136张牌顺序打乱四个玩家参与游戏,四人交替摸牌,每次4张,3次,之后庄家摸2张,两张之间个索引相差4,其他人再摸一张,即庄家14张
转载 2023-08-12 20:50:05
0阅读
算法思想胡的条件必须有一对将(两个相同的牌)除了将,其余牌必须为顺子或刻子算法(精简版)提取所有将牌去除所有刻子去除所有顺子没有牌了,胡;还有牌,不胡算法(完整版)提取所有将牌(如果要胡,将牌是必须存在的,而且将牌可能会有多种)取一对将牌,如果没有将牌了,则表示不能胡将手牌去除选取的将牌将剩余的手牌去除所有的刻子,去除所有的刻子后如果手牌没有了,则胡;手牌还有,则继续第5步判断将手牌去除所有的顺子
转载 10月前
0阅读
#coding='utf-8'#author='小罗'#麻将胡牌算法#判定规则:n*(abc)+m*(ddd)+ee#特殊牌型:7*(ee),7对。##规则:##胡牌的基础牌型:##(1)11、123、123、123、123##(2)11、123、123、123、111(1111,下同)##(3)11、123、123、111、111##(4)11、123、111、111、111##(5)11、11
题目描述:小包最近发明了一种新的麻将,具体的规则如下:总共有36张牌,每张牌是1~9。每个数字4张牌。你手里有其中的14张牌,如果这14张牌满足如下条件,即算作和牌14张牌中有2张相同数字的牌,称为雀头。除去上述2张牌,剩下12张牌可以组成4个顺子或刻子。顺子的意思是递增的连续3个数字牌(例如234,567等),刻子的意思是相同数字的3个数字牌(例如111,777)例如:1 1 1 2 2 2 6
  • 1
  • 2
  • 3
  • 4
  • 5