斗地主特殊牌型定义

游戏内一些牌型的定义,不做过多解释代码很详细,哪有不懂可以留言询问

public enum DDZPaiType {HuoJian(“火箭”,30,”HuoJian”),ZhaDan(“炸弹”,20,”ZhaDan”),DanPai(“单牌”,10,”DanPai”),DuiPai(“对牌”,10,”DuiPai”),SanZhangPai(“三张牌”,10,”SanZhangPai”),SanDaiYi(“三带一”,10,”SanDaiYi”),SanDaiEr(“三带二”,10,”SanDaiEr”),DanShun(“单顺”,10,”DanShun”),ShuangShun(“双顺”,10,”ShuangShun”),SanShun(“三顺”,10,”SanShun”),FeiJiDaiDanPai(“飞机带两单”,10,”FeiJiDaiDanPai”),FeiJiDaiDuiZi(“飞机带两对”,10,”FeiJiDaiDuiZi”),SiDaiLiangDan(“四带两单”,10,”SiDaiLiangDan”),SiDaiLiangDui(“四带两对”,10,”SiDaiLiangDui”);private String name;private String nickName;private int weight;private int size;

DDZPaiType(String name, int weight,String nickName) {this.name = name;this.weight = weight;this.nickName = nickName;}

@Overridepublic String toString() {return name;}

public String getName() {return name;}

public int getWeight() {return weight;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}public String getNickName() {return nickName;}

public void setNickName(String nickName) {this.nickName = nickName;}

/** * 获取牌的类型 *@param pokers *@return *@return * 2018年1月27日 * @throws ZJHPokerException */public static DDZPaiType getPaiType(DDZPai ddzPai) throws DDZPokerException{List<DDZPoker> pokers = ddzPai.getDdzPokers();Collections.sort(pokers);//Collections.sort(pokers);if(isHuoJian(pokers)){ddzPai.setDdzPoker(pokers.get(0));return HuoJian;}if(isZhaDan(pokers)){ddzPai.setDdzPoker(pokers.get(0));return ZhaDan;}if(isDanPai(pokers)){ddzPai.setDdzPoker(pokers.get(0));return DanPai;}if(isDuiZi(pokers)){ddzPai.setDdzPoker(pokers.get(0));return DuiPai;}if(isSanZhangPai(pokers)){ddzPai.setDdzPoker(pokers.get(0));return SanZhangPai;}if(isSanDaiYi(pokers,ddzPai)){return SanDaiYi;}if(isSanDaiEr(pokers,ddzPai)){return SanDaiEr;}if(isDanShun(pokers)){ddzPai.setDdzPoker(pokers.get(0));return DanShun;}if(isShuangShun(pokers)){ddzPai.setDdzPoker(pokers.get(0));return ShuangShun;}if(isSanShun(pokers)){ddzPai.setDdzPoker(pokers.get(0));return SanShun;}if(isFeiJiDaiLiangDan(pokers,ddzPai)){return FeiJiDaiDanPai;}if(isFeiJiDaiLiangDui(pokers, ddzPai)){return FeiJiDaiDuiZi;}if(isSiDaiLiangDan(pokers, ddzPai)){return SiDaiLiangDan;}if(isSiDaiLiangDui(pokers, ddzPai)){return SiDaiLiangDui;}return null;}//单顺private static boolean isDanShun(List<DDZPoker> pokers) {if(pokers.size()>=5){if(pokers.get(0).getSize()>=15){return false;}for (int i =0;i<pokers.size();i++) {if(i<pokers.size()-1&&pokers.get(i).getSize()-pokers.get(i+1).getSize()!=1){return false;}}return true;}return false;}//四带两对private static boolean isSiDaiLiangDui(List<DDZPoker> pokers,DDZPai ddzPai) {if(pokers.size()==8){int count1 = 0;int count2 = 0;DDZPoker ddzPoker = new DDZPoker();for (int i =0;i<pokers.size();i++) {int num = 0;for (int j =0;j<pokers.size();j++) {if(pokers.get(j).getPokerNum()==pokers.get(i).getPokerNum()){num++;}}if(num==4){ddzPoker = pokers.get(i);count1++;}if(num==2){count2++;}}if(count1==4 && count2==4){ddzPai.setDdzPoker(ddzPoker);return true;}}return false;}

//四带两单private static boolean isSiDaiLiangDan(List<DDZPoker> pokers,DDZPai ddzPai) {if(pokers.size()==6){int count1 = 0;DDZPoker ddzPoker = new DDZPoker();for (int i =0;i<pokers.size();i++) {int num = 0;for (int j =0;j<pokers.size();j++) {if(pokers.get(j).getPokerNum()==pokers.get(i).getPokerNum()){num++;}}if(num==4){ddzPoker = pokers.get(i);count1++;}}if(count1==4){ddzPai.setDdzPoker(ddzPoker);return true;}}return false;}

//飞机带对子private static boolean isFeiJiDaiLiangDui(List<DDZPoker> pokers,DDZPai ddzPai) {if(pokers.size()>=10&&pokers.size()%5==0){int count1 = 0;int count2 = 0;List<DDZPoker> ddzPokers = new ArrayList<DDZPoker>();for (int i =0;i<pokers.size();i++) {int num = 0;for (int j =0;j<pokers.size();j++) {if(pokers.get(j).getPokerNum()==pokers.get(i).getPokerNum()){num++;}}if(num==3){count1++;ddzPokers.add(pokers.get(i));}if(num==2){count2++;}}Collections.sort(ddzPokers);if(count1==(pokers.size()/5)*3 && count2==(pokers.size()/5)*2&&ddzPokers.get(0).getSize()<15&&ddzPokers.get(0).getSize()-ddzPokers.get(ddzPokers.size()-1).getSize()==(pokers.size()/5)-1){ddzPai.setDdzPoker(ddzPokers.get(0));return true;}}return false;}

//飞机带单牌private static boolean isFeiJiDaiLiangDan(List<DDZPoker> pokers,DDZPai ddzPai) {if(pokers.size()>=8&&pokers.size()%4==0){int count = 0;List<DDZPoker> ddzPokers = new ArrayList<DDZPoker>();for (int i =0;i<pokers.size();i++) {int num = 0;for (int j =0;j<pokers.size();j++) {if(pokers.get(j).getPokerNum()==pokers.get(i).getPokerNum()){num++;}}if(num==3){count++;ddzPokers.add(pokers.get(i));}}//四带两对的判定if(ddzPokers.size() > 0 &&ddzPokers.get(0).getSize()<15){if(count==(pokers.size()/4)*3){Collections.sort(ddzPokers);if(ddzPokers.get(0).getSize()-ddzPokers.get(ddzPokers.size()-1).getSize()==(pokers.size()/4-1)){ddzPai.setDdzPoker(ddzPokers.get(0));return true;}else{return false;}}}}return false;}

//三顺private static boolean isSanShun(List<DDZPoker> pokers) {if(pokers.size()%3==0&&pokers.size()>=6){for (int i =0;i<pokers.size();i=i+3) {if(pokers.get(i).getPokerNum()!=pokers.get(i+2).getPokerNum()){return false;}}if(pokers.get(0).getSize()>=15){return false;}else{if(pokers.get(0).getSize()-pokers.get(pokers.size()-1).getSize()==(pokers.size()/3)-1){return true;}}}return false;}

//双顺private static boolean isShuangShun(List<DDZPoker> pokers) {if(pokers.size()%2==0&&pokers.size()>=6){for (int i =0;i<pokers.size();i=i+2) {if(pokers.get(i).getPokerNum()!=pokers.get(i+1).getPokerNum()){return false;}}if(pokers.get(0).getSize()>=15){return false;}else{if(pokers.get(0).getSize()-pokers.get(pokers.size()-1).getSize()==(pokers.size()/2)-1){return true;}}}return false;}

//三带二private static boolean isSanDaiEr(List<DDZPoker> pokers,DDZPai ddzPai) {if(pokers.size()==5&&pokers.get(0).getPokerNum() ==pokers.get((pokers.size()-3)).getPokerNum()&&pokers.get(3).getPokerNum() ==pokers.get((4)).getPokerNum()){ddzPai.setDdzPoker(pokers.get(0));return true;}if(pokers.size()==5&&pokers.get(2).getPokerNum() ==pokers.get((pokers.size()-1)).getPokerNum()&&pokers.get(0).getPokerNum() ==pokers.get((1)).getPokerNum()){ddzPai.setDdzPoker(pokers.get(2));return true;}return false;}

//三带一private static boolean isSanDaiYi(List<DDZPoker> pokers,DDZPai ddzPai) {if(pokers.size()==4&&pokers.get(0).getPokerNum() ==pokers.get((pokers.size()-2)).getPokerNum()){ddzPai.setDdzPoker(pokers.get(0));return true;}if(pokers.size()==4&&pokers.get(1).getPokerNum() ==pokers.get((pokers.size()-1)).getPokerNum()){ddzPai.setDdzPoker(pokers.get(1));return true;}return false;}

//三张牌private static boolean isSanZhangPai(List<DDZPoker> pokers) {if(pokers.size()==3&&pokers.get(0).getPokerNum() ==pokers.get((pokers.size()-1)).getPokerNum() ){return true;}return false;}

//对子private static boolean isDuiZi(List<DDZPoker> pokers) {if(pokers.size()==2&&pokers.get(0).getPokerNum() ==pokers.get((pokers.size()-1)).getPokerNum() ){return true;}return false;}//单牌private static boolean isDanPai(List<DDZPoker> pokers) {if(pokers.size()==1){return true;}return false;}//炸弹private static boolean isZhaDan(List<DDZPoker> pokers) {if(pokers.size()==4&&pokers.get(0).getPokerNum() ==pokers.get((pokers.size()-1)).getPokerNum() ){return true;}return false;}//王炸private static boolean isHuoJian(List<DDZPoker> pokers) {if(pokers.size()==2&&pokers.get(0).getPokerNum() ==PokerNum.P_DAWANG &&pokers.get(pokers.size() – 1).getPokerNum() ==PokerNum.P_XIAOWANG ){return true;}return false;}//测试方法public static void main(String [] args ){List<DDZPoker> pokers = new ArrayList<DDZPoker>();//pokers.add(new DDZPoker(new Poker(PokerColorType.FANG_KUAI, PokerNum.P_J)));//pokers.add(new DDZPoker(new Poker(PokerColorType.FANG_KUAI, PokerNum.P_Q)));//pokers.add(new DDZPoker(new Poker(PokerColorType.FANG_KUAI, PokerNum.P_10)));//pokers.add(new DDZPoker(new Poker(PokerColorType.FANG_KUAI, PokerNum.P_A)));//pokers.add(new DDZPoker(new Poker(PokerColorType.FANG_KUAI, PokerNum.P_K)));//pokers.add(new DDZPoker(new Poker(PokerColorType.WANG, PokerNum.P_DAWANG)));//pokers.add(new DDZPoker(new Poker(PokerColorType.WANG, PokerNum.P_XIAOWANG)));pokers.add(new DDZPoker(new Poker(PokerColorType.MEI_HUA, PokerNum.P_4)));pokers.add(new DDZPoker(new Poker(PokerColorType.MEI_HUA, PokerNum.P_5)));pokers.add(new DDZPoker(new Poker(PokerColorType.FANG_KUAI, PokerNum.P_6)));pokers.add(new DDZPoker(new Poker(PokerColorType.MEI_HUA, PokerNum.P_7)));pokers.add(new DDZPoker(new Poker(PokerColorType.FANG_KUAI, PokerNum.P_8)));Collections.sort(pokers);DDZPai ddzPai = new DDZPai();boolean flage = isDanShun(pokers);System.out.println(ddzPai.toString());for(int i = 0 ; i < pokers.size(); i++){DDZPoker poker = pokers.get(i);System.out.println(poker.getSize());}System.out.println(flage);}}

都懒得写日记来记录,可见内心底对旅行是多么的淡漠。

斗地主特殊牌型定义

相关文章:

  • 【算法】直接插入排序C语言实现
  • 嵌入式 FAAC1.28 在海思HI3518C/HI3518A平台linux中的编译优化
  • Android 动画animation 深入分析
  • Mybatis极其(最)简(好)单(用)的一个分页插件
  • Ext JS Kitchen Sink [Learning by doing](2)ArrayGrid
  • API开发第三篇:PHP的设计模式之完美的单例模式
  • 你感兴趣的文章:

    标签云:

    亚洲高清电影在线, 免费高清电影, 八戒影院夜间, 八戒电影最新大片, 出轨在线电影, 午夜电影院, 在线影院a1166, 在线电影院, 在线观看美剧下载, 日本爱情电影, 日韩高清电影在线, 电影天堂网, 直播盒子app, 聚合直播, 高清美剧, 高清美剧在线观看 EhViewer-E站, E站, E站绿色版, qqmulu.com, qq目录网, qq网站目录,