德州 Java_java 模拟德州扑克

ゞ 浴缸里的玫瑰 2022-11-09 11:29 245阅读 0赞

packagecom.lzx.demo;importorg.junit.Test;importjava.util.Arrays;importjava.util.HashMap;importjava.util.Map;public classTexasPoker {public static intcomparePoker(Poker[] poker,Poker[] poker2){int type1=getType(poker);int type2=getType(poker2);if(type1==type2){return getValueSum(poker)-getValueSum(poker2);

}else{return type1-type2;

}

}//获取牌的总值

public static intgetValueSum (Poker[] poker){int sum = 0;for(Poker p:poker) {

sum+=p.getValue();

}returnsum;

}//获取牌的类型值

public static intgetType(Poker[] poker){int type=isFlush(poker);if(type==9){returntype;

}else{

type=isFour(poker);returntype;

}

}//是否是同花顺 是返回同花顺的类型值9

public static intisFlush(Poker[] poker){boolean flag =true;//是否是顺子 默认是

int type =1;int heartsNum=0;//红桃

int spadeNum=0;//黑桃

int clubNum=0;//梅花

int diamondNum=0;//方块

for(Poker p:poker) {switch(p.flowercolor){case 1:

heartsNum++;break;case 2:

clubNum++;break;case 3:

diamondNum++;break;case 4:

spadeNum++;break;

}

}//是否同花

if(heartsNum==5||spadeNum==5||clubNum==5||diamondNum==5){

type=6;//1、排序

Arrays.sort(poker);//2、是否是顺

for (int i = 0; i

flag=false;returntype;

}

}

type=9;

}returntype;

}//是否是4条 是返回四条类型值8

public static intisFour(Poker[] poker){

Map map = newHashMap();for (int i = 0; i

Integer num=map.get(poker[i].getName());

map.put(poker[i].getName(),num==null?1:num+1);

}for(Integer value : map.values()) {//四条

if(value==4){//将4条的值放大8倍 提高同类型比较的准确性

for (int i = 0; i

poker[i].setValue(poker[i].getValue()<<3);

}return 8;

}

}return 0;

}private class Poker implements Comparable{private String name;//2 3 4 5…J Q K A

private int value;//牌值

private int flowercolor;//花色 1:红桃 2 梅花 3方块 4黑桃

public Poker(String name,int value, intflowercolor) {this.name =name;this.value=value;this.flowercolor =flowercolor;

}publicPoker() {

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetValue() {returnvalue;

}public void setValue(intvalue) {this.value=value;

}public intgetFlowercolor() {returnflowercolor;

}public void setFlowercolor(intflowercolor) {this.flowercolor =flowercolor;

}

@Overridepublic intcompareTo(Poker poker) {return this.value-poker.value;

}

}//同花顺比较

@Testpublic voidtestone(){

Poker[] pokers= new Poker[5];

Poker[] pokers2= new Poker[5];

TexasPoker texasPoker= newTexasPoker();

Poker p= texasPoker.new Poker(“J”,11, 1);

Poker p1= texasPoker.new Poker(“Q”,12, 1);

Poker p2= texasPoker.new Poker(“K”,13, 1);

Poker p3= texasPoker.new Poker(“A”,14, 1);

Poker p4= texasPoker.new Poker(“10”,10, 1);

Poker p5= texasPoker.new Poker(“5”,5, 1);

Poker p6= texasPoker.new Poker(“6”,6, 1);

Poker p7= texasPoker.new Poker(“7”,7, 1);

Poker p8= texasPoker.new Poker(“8”,8, 1);

Poker p9= texasPoker.new Poker(“9”,9, 1);

pokers[0]=p;

pokers[1]=p1;

pokers[2]=p2;

pokers[3]=p3;

pokers[4]=p4;

pokers2[0]=p5;

pokers2[1]=p6;

pokers2[2]=p7;

pokers2[3]=p8;

pokers2[4]=p9;

System.out.println(comparePoker(pokers,pokers2));

}//同花顺和四条比较

@Testpublic voidtest2(){

Poker[] pokers= new Poker[5];

Poker[] pokers2= new Poker[5];

TexasPoker texasPoker= newTexasPoker();

Poker p= texasPoker.new Poker(“J”,11, 1);

Poker p1= texasPoker.new Poker(“Q”,12, 1);

Poker p2= texasPoker.new Poker(“K”,13, 1);

Poker p3= texasPoker.new Poker(“A”,14, 1);

Poker p4= texasPoker.new Poker(“10”,10, 1);

Poker p5= texasPoker.new Poker(“4”,4, 1);

Poker p6= texasPoker.new Poker(“4”,4, 2);

Poker p7= texasPoker.new Poker(“4”,4, 3);

Poker p8= texasPoker.new Poker(“4”,4, 4);

Poker p9= texasPoker.new Poker(“9”,9, 1);

pokers[0]=p;

pokers[1]=p1;

pokers[2]=p2;

pokers[3]=p3;

pokers[4]=p4;

pokers2[0]=p5;

pokers2[1]=p6;

pokers2[2]=p7;

pokers2[3]=p8;

pokers2[4]=p9;

System.out.println(comparePoker(pokers,pokers2));

}//四条比较

@Testpublic voidtest3(){

Poker[] pokers= new Poker[5];

Poker[] pokers2= new Poker[5];

TexasPoker texasPoker= newTexasPoker();

Poker p= texasPoker.new Poker(“2”,2, 1);

Poker p1= texasPoker.new Poker(“2”,2, 2);

Poker p2= texasPoker.new Poker(“2”,2, 3);

Poker p3= texasPoker.new Poker(“2”,2, 4);

Poker p4= texasPoker.new Poker(“A”,14, 1);

Poker p5= texasPoker.new Poker(“4”,4, 1);

Poker p6= texasPoker.new Poker(“4”,4, 2);

Poker p7= texasPoker.new Poker(“4”,4, 3);

Poker p8= texasPoker.new Poker(“4”,4, 4);

Poker p9= texasPoker.new Poker(“9”,9, 1);

pokers[0]=p;

pokers[1]=p1;

pokers[2]=p2;

pokers[3]=p3;

pokers[4]=p4;

pokers2[0]=p5;

pokers2[1]=p6;

pokers2[2]=p7;

pokers2[3]=p8;

pokers2[4]=p9;

System.out.println(comparePoker(pokers,pokers2));

}

}

发表评论

表情:
评论列表 (有 0 条评论,245人围观)

还没有评论,来说两句吧...

相关阅读

    相关 eos游戏开发德州扑克

    eos德州扑克游戏开发简述   最近来问我怎么处理暗牌的人比较多,我在这里给大家说一下我的思考:对于暗牌,因为玩家可能在增加,那么一个种子来实现明显难度是比较有压力的,因此一