麻将胡牌算法1、麻将的基本规则2、胡牌算法解析3、麻将的表示方法一副完整的麻将表示方法手牌表示方法4、核心代码 1、麻将的基本规则常见的麻将一共有三种花色,万、条、筒。每种花色的牌都有1~9个数值,每种数值的牌有4张,总共有493=108张牌。胡牌时手牌必须满足(不包含特殊牌型,如对对胡,大对子等)mABC+nDDD+EE(m >=0,n>=0),即一对将牌除开,剩余的牌全能组成顺子
麻将牌型主是AA,AAA,AAAA,ABC的组合构成胡牌,可以把牌分为明牌和手牌,明牌是指杠,吃,碰之后的牌,手牌指未露出来的牌,听牌只需要算手牌即可。听牌可以分为有对将,其它为圆句,只留一个需要圆句,吃牌胡,或者碰牌胡。如果无对将,则需所有为圆句和一张单牌吊将。 方法一:先取一对将,再把剩下的牌递归找整句,直到只剩两张牌,算出缺口牌即为听的牌。中间任意一步失败也该组合失败。先找整句,剩
  声明: 算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将胡牌算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 .   算法理解之后就不难了 , 下面开始详细的阐述了.1. 将麻将抽象为数字  数字 {01 ~ 09} 表示  {1 ~ 9} 筒  数字 {11 ~ 19} 表示  
麻将胡牌算法(不带赖子)(2天)编码:(假设一副牌只有筒子 1表示1筒 2表示2筒。。。。 9表示9筒)要求:1)七对算法(判断14张牌是否是7对)2)碰碰胡算法(判断14张牌是否是碰碰胡)3)屁胡算法(判断14张牌是否是屁胡)用户输入14张牌值,要求判断出这14张牌是否满足上述3种牌型(可能同时满...
原创 2022-03-16 13:38:24
2993阅读
/** * 手牌 * *@authorzkpursuit */public classHandCards{ /** * 获取牌号最左边的一位数,如果牌为筒、条、万,则返回值为牌类型数值 * *@paramcard 牌号 *@return牌号从左至右第一位数(十位数) */ publicfinalstaticintgetCardLeftValue(intcard)
算法思想胡的条件必须有一对将(两个相同的牌)除了将,其余牌必须为顺子或刻子算法(精简版)提取所有将牌去除所有刻子去除所有顺子没有牌了,胡;还有牌,不胡算法(完整版)提取所有将牌(如果要胡,将牌是必须存在的,而且将牌可能会有多种)取一对将牌,如果没有将牌了,则表示不能胡将手牌去除选取的将牌将剩余的手牌去除所有的刻子,去除所有的刻子后如果手牌没有了,则胡;手牌还有,则继续第5步判断将手牌去除所有的顺子
转载 10月前
0阅读
声明 算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将胡牌算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 . 算法 1.将麻将抽象为数字 数字 {01 ~ 09} 表示 {1 ~ 9} 筒数字 {11 ~ 19} 表示 {1 ~ 9} 条数字 {21 ~ 29} 表示 {1 ~ 9} 万数字 {31 33 35 37
转载 2021-08-12 08:12:03
3418阅读
# 麻将算法的Java实现 麻将,作为中国的传统游戏,其算法实现一直是计算机科学领域研究的热点。本文将介绍如何使用Java语言实现麻将算法,并通过代码示例和旅行图来展示其实现过程。 ## 麻将算法简介 麻将是一种四人游戏,每个玩家需要从牌堆中摸牌、打牌,最终通过胡牌来决定胜负。麻将算法的核心是牌的生成、摸牌、打牌和胡牌的判断。 ## Java实现麻将算法 在Java中实现麻将算法,首先需
原创 1月前
37阅读
声明算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将胡牌算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 .算法1.将麻将抽象为数字数字 {01 ~ 09} 表示
转载 2022-02-24 11:38:22
1622阅读
麻将通常有13张牌,在打的时候随着吃,碰越来越少。总数应该维持在3*n + 1,n=0~4,比如1张,4张,7张或10张。胡牌时,加一张(可能是自摸或吃碰来的一张)组成n个顺子或暗刻,外加一个麻将对。 这里要研究的要点是: 1. 给出3n + 2张牌如何判断是否已经胡牌,所有的胡牌可能组合; 2. 如果给出3n+1张牌如何判断是否已经挺牌,挺哪些牌。 这两个问题其实主要是第一个问题,也就是如何判断
转载 2017-03-26 23:37:00
798阅读
2评论
麻将游戏算法深入解析       这两天为了工具箱的完善,整理了这些年引擎开发的一
原创 2023-01-19 22:51:32
348阅读
最先实现的就是算法的实现。 需求:碰杠胡  ,不能吃 ,不能听 ,仅仅能自摸胡,当中癞子能够做随意牌可是不能碰和杠。 写的时候还不会玩麻将,还是老板教的。^_^ 最麻烦的是胡牌算法。之前搜到的都是不包括癞子正常的胡牌,用的是%3余2,当中余数2就是余的将的意思。 可是有癞子就不能这么用了。仅仅好自己写一个了。 一个有136张牌,万,饼,条,东西南北中发白34种牌。 有四个癞子是直接就胡牌的,最
转载 2015-01-31 09:36:00
313阅读
2评论
          今天尝试写了一个简单麻将的胡牌算法,规则很简单,看代码:#include<stdio.h>#include<string.h>/*1,2,3,4,5,6,7,8,9 万 11,12,13,14,15,16,17,18,19 索 21,22,23,24,25,26,27,28,29 饼*///胡牌规则:要一...
原创 2021-06-01 13:50:25
1407阅读
题目描述麻将是一个中国原创的4人玩的游戏。这个游戏有很多变种,但本题只考虑一种有136张牌的玩法。这136张牌所包含的内容如下。饼(筒)牌:每张牌包括一系列题目描述麻将是一个中国原创的4人玩的游戏。这个游戏有很多变种,但本题只考虑一种有136张牌的玩法。这136张牌所包含的内容如下。饼(筒)牌:每张牌包括一系列点,每个点代表一个铜钱。本题中用1T、2T、3T、4T、5T、6T、7T、8T、9T表示
这篇博客主要是记录在学习java集合中,使用相关知识点完成XX(哈哈 不能暴露了)麻将的准备牌、洗牌、发牌、看牌基本功能。 ####需求分析A:XX麻将的功能需求分析 a:具体规则: 1. 组装136张麻将 条、筒、万加到一起的数目是108张 东、西、南、北风、红中、白皮、发财是28张,总共136张 2. 将136张牌顺序打乱
import java.util.List;   import java.util.Scanner;         public class Main {          public&
c
原创 2016-09-11 10:45:41
1183阅读
之前用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可以为任意数,胡牌里面有且只有一对!学霸哥哥:原来麻将还可以这样玩。好的 地址微信发给我,马上到!通过这个对话,我想大家应该都能明白麻将的胡牌公式是怎么样了,如果只是简单的麻将胡牌,我想算法实现起来就比较的
普通麻将的出牌AI如果不是要求特别高的话,其实蛮容易实现的,毕竟大多数人打牌都只是看自己的手牌。 所以作为简易版的AI,出牌的策略只要奔着胡牌去就可以了。我们能想到的就是把相邻或相同的牌凑到一起,把单独的牌打出去。以这个思路打牌,就会慢慢接近听牌至最终的胡牌。 我们简单举个例子,我们有1万2万,那么
转载 2018-06-12 22:25:00
238阅读
2评论
题目链接: http://bailian.openjudge.cn/practice/2802/Description  在一种”麻将”游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。最后如果能将所有牌移出平板,则算过关。   这个游戏中的一个关键问题是:两张牌之间
转载 2017-07-28 17:11:00
80阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5