两副牌斗地主规则,三个四带对5,我出三个六带对K,为什么不符合规则,牌也出不去。。。什么情况

6784人阅读
中国象棋-斗地主(19)
本篇主要讲解斗地主中如何判断一手牌的牌型。牌型  火箭:即双王(大王和小王),最大的牌。  炸弹:四张点数相同的牌,如:7777。  单牌:任意一张单牌。  对牌:任意两张点数相同的牌。  三张:任意三张点数相同的牌,如888。  三带一:点数相同的三张牌+一张单牌或一对牌。如:333+6 或 444+99。  单顺:任意五张或五张以上点数相连的牌,如:4JQK。不包括 2和双王。  双顺:三对或更多的连续对牌,如:JJ。不包括 2 点和双王。  三顺:二个或更多的连续三张牌,如:333444 、。不包括 2 点和双王。  飞机带翅膀:三顺+同数量的单牌或同数量的对牌。如: 或99JJ  四带二:四张牌+两手牌。(注意:四带二不是炸弹)。如: 或
。友情提示:本篇是接着上1篇讲述的,建议先看看上1篇一张牌Card的构造过程。/**&* 游戏规则 牌的类型共有10种:&*&* 1. 单 2.对子 3.3不带 4.3带1 5.炸弹 6.顺子 7.4带2 8.连队 9.飞机 10.对王&*&* @author ,,&*&&&&&&&& http://blog.csdn.net/FansUnion&*&*/1.单&
* 判断牌是否为单
* @param myCards
* @return 如果为单,返回true;否则,返回false。
public static boolean isDan(List&Card& myCards) {
// 默认不是单
boolean flag =
if (myCards != null && myCards.size() == 1) {
2.对子&&&&/**
* 判断牌是否为对子
* @param myCards
* @return 如果为对子,返回true;否则,返回false。
public static boolean isDuiZi(List&Card& myCards) {
// 默认不是对子
boolean flag =
if (myCards != null && myCards.size() == 2) {
int grade1 = myCards.get(0).
int grade2 = myCards.get(1).
if (grade1 == grade2) {
3.3带1&& &/**&&
* 判断牌是否为3带1
* @param myCards
* @return 如果为3带1,被带牌的位置,0或3,否则返回-1。炸弹返回-1。
public static int isSanDaiYi(List&Card& myCards) {
int flag = -1;
// 默认不是3带1
if (myCards != null && myCards.size() == 4) {
// 对牌进行排序
CardUtil.sortCards(myCards);
int[] grades = new int[4];
grades[0] = myCards.get(0).
grades[1] = myCards.get(1).
grades[2] = myCards.get(2).
grades[3] = myCards.get(3).
// 暂时认为炸弹不为3带1
if ((grades[1] == grades[0]) && (grades[2] == grades[0])
&& (grades[3] == grades[0])) {
return -1;
// 3带1,被带的牌在牌头
else if ((grades[1] == grades[0] && grades[2] == grades[0])) {
// 3带1,被带的牌在牌尾
else if (grades[1] == grades[3] && grades[2] == grades[3]) {
* 判断牌是否为3不带
* @param myCards
* @return 如果为3不带,返回true;否则,返回false。
public static boolean isSanBuDai(List&Card& myCards) {
// 默认不是3不带
boolean flag =
if (myCards != null && myCards.size() == 3) {
int grade0 = myCards.get(0).
int grade1 = myCards.get(1).
int grade2 = myCards.get(2).
if (grade0 == grade1 && grade2 == grade0) {
* 判断牌是否为顺子
* @param myCards
* @return 如果为顺子,返回true;否则,返回false。
public static boolean isShunZi(List&Card& myCards) {
// 默认是顺子
boolean flag =
if (myCards != null) {
int size = myCards.size();
// 顺子牌的个数在5到12之间
if (size & 5 || size & 12) {
// 对牌进行排序
CardUtil.sortCards(myCards);
for (int n = 0; n & size - 1; n++) {
int prev = myCards.get(n).
int next = myCards.get(n + 1).
// 小王、大王、2不能加入顺子
if (prev == 17 || prev == 16 || prev == 15 || next == 17
|| next == 16 || next == 15) {
if (prev - next != -1) {
6.炸弹&&&&/**
* 判断牌是否为炸弹
* @param myCards
* @return 如果为炸弹,返回true;否则,返回false。
public static boolean isZhaDan(List&Card& myCards) {
// 默认不是炸弹
boolean flag =
if (myCards != null && myCards.size() == 4) {
int[] grades = new int[4];
grades[0] = myCards.get(0).
grades[1] = myCards.get(1).
grades[2] = myCards.get(2).
grades[3] = myCards.get(3).
if ((grades[1] == grades[0]) && (grades[2] == grades[0])
&& (grades[3] == grades[0])) {
* 判断牌是否为王炸
* @param myCards
* @return 如果为王炸,返回true;否则,返回false。
public static boolean isDuiWang(List&Card& myCards) {
// 默认不是对王
boolean flag =
if (myCards != null && myCards.size() == 2) {
int gradeOne = myCards.get(0).
int gradeTwo = myCards.get(1).
// 只有小王和大王的等级之后才可能是33
if (gradeOne + gradeTwo == 33) {
* 判断牌是否为连对
* @param myCards
* @return 如果为连对,返回true;否则,返回false。
public static boolean isLianDui(List&Card& myCards) {
// 默认是连对
boolean flag =
if (myCards == null) {
int size = myCards.size();
if (size & 6 || size % 2 != 0) {
// 对牌进行排序
CardUtil.sortCards(myCards);
for (int i = 0; i & i = i + 2) {
if (myCards.get(i).grade != myCards.get(i + 1).grade) {
if (i & size - 2) {
if (myCards.get(i).grade - myCards.get(i + 2).grade != -1) {
* 判断牌是否为飞机
* @param myCards
* @return 如果为飞机,返回true;否则,返回false。
public static boolean isFeiJi(List&Card& myCards) {
boolean flag =
// 默认不是单
if (myCards != null) {
int size = myCards.size();
if (size &= 6) {
// 对牌进行排序
CardUtil.sortCards(myCards);
if (size % 3 == 0 && size % 4 != 0) {
flag = isFeiJiBuDai(myCards);
} else if (size % 3 != 0 && size % 4 == 0) {
flag = isFeiJiDai(myCards);
} else if (size == 12) {
flag = isFeiJiBuDai(myCards) || isFeiJiDai(myCards);
10.飞机不带&
* 判断牌是否为飞机不带
* @param myCards
* @return 如果为飞机不带,返回true;否则,返回false。
public static boolean isFeiJiBuDai(List&Card& myCards) {
if (myCards == null) {
int size = myCards.size();
int n = size / 3;
int[] grades = new int[n];
if (size % 3 != 0) {
for (int i = 0; i & i++) {
if (!isSanBuDai(myCards.subList(i * 3, i * 3 + 3))) {
// 如果连续的3张牌是一样的,记录其中一张牌的grade
grades[i] = myCards.get(i * 3).
for (int i = 0; i & n - 1; i++) {
if (grades[i] == 15) {// 不允许出现2
if (grades[i + 1] - grades[i] != 1) {
System.out.println(&等级连续,如 333444&
+ (grades[i + 1] - grades[i]));
// grade必须连续,如 333444
11.飞机带&&
* 判断牌是否为飞机带
* @param myCards
* @return 如果为飞机带,返回true;否则,返回false。
public static boolean isFeiJiDai(List&Card& myCards) {
int size = myCards.size();
int n = size / 4;// 此处为“除”,而非取模
int i = 0;
for (i = 0; i + 2 & i = i + 3) {
int grade1 = myCards.get(i).
int grade2 = myCards.get(i + 1).
int grade3 = myCards.get(i + 2).
if (grade1 == grade2 && grade3 == grade1) {
// return isFeiJiBuDai(myCards.subList(i, i + 3 *
// n));8张牌时,下标越界,subList不能取到最后一个元素
ArrayList&Card& cards = new ArrayList&Card&();
for (int j = j & i + 3 * j++) {// 取字串
cards.add(myCards.get(j));
return isFeiJiBuDai(cards);
* 判断牌是否为4带2
* @param myCards
* @return 如果为4带2,返回true;否则,返回false。
public static boolean isSiDaiEr(List&Card& myCards) {
boolean flag =
if (myCards != null && myCards.size() == 6) {
// 对牌进行排序
CardUtil.sortCards(myCards);
for (int i = 0; i & 3; i++) {
int grade1 = myCards.get(i).
int grade2 = myCards.get(i + 1).
int grade3 = myCards.get(i + 2).
int grade4 = myCards.get(i + 3).
if (grade2 == grade1 && grade3 == grade1 && grade4 == grade1) {
下一篇,将要介绍 如何比较2手牌的大小,敬请期待。&相关阅读面向对象实现斗地主程序的核心算法,包括洗牌、发牌、判断牌型、比较牌的大小、游戏规则等。&原文参见:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2271011次
积分:37229
积分:37229
排名:第106名
原创:1036篇
转载:32篇
评论:3426条
微信:FansUnion
姓名:雷文
昵称:小雷FansUnion
籍贯:湖北-襄阳-枣阳
大学:武汉科技大学-软件工程08级-WUST
文章:30篇
阅读:70995
文章:11篇
阅读:32746
文章:14篇
阅读:65609
阅读:29932
文章:34篇
阅读:132066
阅读:36314
文章:16篇
阅读:48434
(1)(4)(6)(6)(9)(8)(9)(16)(21)(21)(12)(20)(27)(6)(17)(21)(17)(4)(28)(36)(48)(1)(7)(10)(2)(14)(19)(24)(21)(43)(62)(51)(21)(16)(1)(7)(13)(2)(1)(1)(9)(42)(50)(48)(27)(16)(16)(3)(6)(9)(4)(9)(67)(26)(18)(71)斗地主残局,明牌,高手速进
能炸,4带2,3带1,不能3带2,农民先出牌
_国信证券(002736)股吧_东方财富网股吧
斗地主残局,明牌,高手速进
能炸,4带2,3带1,不能3带2,农民先出牌
斗地主残局,明牌,高手速进能炸,4带2,3带1,不能3带2,农民先出牌
先出34567 完了出一个A
三个3带一个10三个A带一个10
地王牌包赢的。农民牌只能偷鸡赢。类似炒股,主力机构庄包赢,散户偷鸡赢,道理一样的。
农民包死,地主包赢。随时接受挑战!
先出34567 完了出一个A
你出a,然后人家出一个大王。你就没整了
先出34567 完了出一个A
你出A 地主不出,你出什么?还是死
你出A 地主不出,你出什么?还是死
我出三个3带1张10回牌三个A带1张10
我出三个3带1张10回牌三个A带1张10
你出A,地主打一个小王,你炸没了,地主打一个J,回手大王,再999带J
吉林通化网友
评论该主题
作者:您目前是匿名发表 &
作者:,欢迎留言
提示:用户在社区发表的所有资料、言论等仅代表个人观点,与本网站立场无关,不对您构成任何投资建议。用户应基于自己的独立判断,自行决定证券投资并承担相应风险。河南文娱-名人·名企&正文
扫描到手机,看更多国搜资讯
您可以用手机或平板电脑的二维码应用拍下左侧二维码,您可以在手机国搜客户端继续浏览本文,并可以分享给你的好友。
核心提示:由国家体育总局棋牌运动管理中心和中国互联网上网服务营业场所行业协会共同主办的全国竞技二打一扑克锦标赛3日在京正式启动。本次比赛通过官方趣味竞技赛事服务平台的搭建及运营,充分发挥互联网在信息传输中的准确、高效、透明化等优势,通过技术手段实现对比赛的全程监控以及赛后的违规追溯。
第八条 牌型说明
双王(大王和小王)
二、 炸弹或四条
四张点数相同的牌,如5555
单张牌(不分花色) ,包括大王、小王以及A~K的任意一张单张牌,例如8。
两张点数相同的牌(不分花色),例如55。
三张点数相同的牌(不分花色),如777 。
六、 三带单、三带对
三张点数相同的牌带点数不同的一张单牌或一对,例如333+4或999+33。
或 七、 顺子
五张或更多的连续单牌(不包含 2和双王,最大到A,最小到3,不分花色),例如34567。
三个或更多的连续对子(不包含 2和双王,最大到A,最小到3,不分花色),如334455。
两个或更多的连续“三张”(不包括 2和双王,不分花色),例如333444 或。
十、 飞机带翅膀
飞机带与其长度相同数量点数不同的单牌或者对子(所带牌中不包含双王、炸弹以及与飞机连续的三张),如或或9
或 十一、 四带二
四张相同点数的牌带两张单牌或两个对子(所带牌中不包括双王及炸弹),例如 99+6688。
或 第九条 牌型大小的比较
一、 火箭 & 炸弹 & 一般牌型
一般牌型包括单牌、对子、三张、三带单、三带对、顺子、连对、飞机、飞机带翅膀、四带二。
按牌点比较大小,其中2&A&K&Q&J&10&9&8&7&6&5&4&3。
三、 一般牌型
大王&小王&2&A&K&Q&J&10&9&8&7&6&5&4&3,单牌不分花色。
2、对子、三张、顺子、连对、飞机
只有牌型与张数均相同时才能以最大牌张点数比较大小。
3、三带单、三带对、飞机带翅膀、四带二
只有牌型与张数均相同时才能按其中三张、飞机、炸弹的最大牌张点数比较大小。
第十条 牌局结束及胜负判定
任意一名牌手将自己手中的牌全部出完时,本副牌结束。先出完牌的一方获胜。若庄家先出完牌则庄家获胜,若任意一位防守人先出完牌则防守方获胜。
责任编辑:赵亮
相关搜索:
点击加载更多
河南热搜词
黄金周哪些景点最受欢迎,会不会被挤成饼干?
扫码关注中国搜索官方微信
扫码关注中国搜索官方微信扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
斗地主规则四带一对可以吗?例如:四个3带一对5,或者四个3带一对6,以此类推.
局外人4047
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
恩可以.就是四带二.但是四个不带的话是炸弹.威力更大.
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 两副牌斗地主规则 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信