陌陌日本麻将断幺九胡混幺九应该胡什么牌

一般常用麻将和牌规则_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
一般常用麻将和牌规则
上传于||文档简介
&&麻将和牌规则
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢4266人阅读
华为上机(8)
说起麻将,那可是川渝市民的最爱,无论亲朋好友聚会,还是业务谈判,总是少不了麻将的声音。
成都麻将只能包括3种类型:条,筒,万。没有“门、东南西北、红中”。
每种牌都是数字从1到9,每个数字有4张,共36张。筒,万,条均一样。
胡牌简化规则如下:
1.必须有一个对子,即两张相同的牌,比如:两个2筒,两个4条等。
2.剩余的牌,每3张需要凑成一个有效牌,比如:3个一样的牌(3个2筒),或者3个顺子(1条2条3条),如果所有的牌都能够凑好,再满足规则2和1,有一个对子,并且所有的牌只有两种类型,那么就可以胡牌了。
3.假设牌不会出现碰的情况,即输入的牌肯定是13张。
4.输入牌肯定都是麻将牌,不用考虑异常输入;也不用考虑会输入“门”,“红中”等成都麻将中不会出现的牌。
5.条用T表示,D用D表示,万用W标识。
6.不用考虑输入的合法性,这个由函数的使用者保证。输入的牌为字符串,字母为大写的TDW”
要求根据13个已知输入,判断可以胡那几张牌。
运行时间限制:
输入13张麻将牌,如&1T8T6W6W5D4W1T3W6W2W5D6T1T&
输出胡牌个数和要胡的牌,
其中胡牌个数占一行输出,胡哪一张牌占一行输出,
胡多张牌,输出数促按照T/D/W的顺序从小到大排列(如1T5T6D7D3W8W)。
1T8T6W6W5D4W1T3W6W2W5D6T1T
我的想法是遍历所有牌,加入到这十三张牌中,判断是否是胡牌。如下程序,判定得106分(总分160),实在没找出错误,求大神
代码如下:
&/pre&&pre name=&code& class=&java&&import java.util.ArrayL
import java.util.L
import java.util.S
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] count = new int[27];//TDW排列
int[] tmp = new int[27];//TDW排列
List&String& huPai = new ArrayList&String&();
for(int i=0;i&27;i++){
count[i]=0;
Scanner cin = new Scanner(System.in);
String line = cin.nextLine();
int len = line.length();
for(int i=0;i&i += 2){
if(line.charAt(i+1)=='T'){
int num = Integer.parseInt(line.charAt(i)+&&)-1;
count[num]++;
}else if(line.charAt(i+1)=='D'){
int num = Integer.parseInt(line.charAt(i)+&&)-1;
count[num+9]++;
}else if(line.charAt(i+1)=='W'){
int num = Integer.parseInt(line.charAt(i)+&&)-1;
count[num+9*2]++;
for(int i=0;i&27;i++){
count[i]++;
for(int j=0;j&27;j++)
tmp[j] = count[j];
boolean flag = isHU(tmp);
huPai.add(translate(i));
count[i]--;
System.out.println(huPai.size());
for(String x:huPai)
System.out.print(x);
private static String translate(int i) {
// TODO Auto-generated method stub
int n = i/9;
int pre = i%9+1;
String r =
switch (n) {
r = pre + &T&;
r = pre + &D&;
r = pre + &W&;
private static boolean isHU(int[] count) {
// TODO Auto-generated method stub
boolean result = tryHU(count, 14);
private static boolean tryHU(int[] count, int len) {
// TODO Auto-generated method stub
if(len==0)
if(len%3==2){//说明对牌没出现
for(int i=0;i&27;i++){
if(count[i]&=2){
count[i] -= 2;
if(tryHU(count, len - 2))
count[i] += 2;
//三个一样的
for(int i=0;i&27;i++){
if(count[i]&=3){
count[i] -= 3;
if(tryHU(count, len - 3))
count[i] += 3;
//是否是顺子
for(int i=0;i&27-2;i++){
if(count[i]&0&&count[i+1]&0&&count[i+2]&0){
count[i] -= 1;
count[i+1] -= 1;
count[i+2] -= 1;
if(tryHU(count, len - 3))
count[i] += 1;
count[i+1] += 1;
count[i+2] += 1;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:15226次
排名:千里之外
原创:13篇麻将各种胡牌的番数_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
麻将各种胡牌的番数
上传于||文档简介
&&麻将业余
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩12页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 广东麻将幺九 的文章

 

随机推荐