因为这两天正在学java嘛,然后前两天校队开会又说到CCPC的事情,想着准备一个德州扑克的模板
模板目前支持的功能包括
读入五张底牌和n名玩家的手牌
判断每个玩家的最佳牌型并选择最佳的有效牌
代码如下:
Sevencards.java
package thpoker;
public class Sevencards {
int[] card= new int[7];//2~10 J=11 Q=12 K=13 A=14
char[] col= new char[7];
int sign;//牌型标记
int[] valuableCard = new int[5];
char[] valuableColor = new char[5];//'A''B''C''D'分别表示红桃、方片、黑桃和草花
int flagOfFlush = -1; //同花标记,有五张以上的牌是同花的
boolean royalFlushFlag = false; //皇家同花顺标记
int flagOfThreeKind = -1; //三条标记,有至少一组三条(最大的一组)
int flagOfPair = -1;// 对子标记,有至少一组对子(最大的那组)
public Sevencards(int[] a,char[] b)
{
for(int i=0;i<7;i++)
{
card[i]=a[i];
col[i]=b[i];
System.out.print(col[i]+" "+card[i]+" ");
}
System.out.print("\n");
for(int i=0;i<7;i++)
for(int j=0;j<6;j++)
if(card[j]<card[j+1])
{
int c = card[j+1];
card[j+1] = card[j];
card[j] = c;
char d = col[j];
col[j] = col[j+1];
col[j+1] = d;
}
if(judgeStraightFlush())
sign=1;
else if(judgeBomb())
sign=2;
else if(judgeFullHouse())
sign=3;
else if(judgeFlush())
sign=4;
else if(judgeSnake())
sign=5;
else if(judgeThreeKind())
sign=6;
else if(judgeTwoPair())
sign=7;
else if(judgeOnePair())
sign=8;
else
{
for(int i=0;i<5;i++)
{
valuableCard[i] = card[i];
valuableColor[i] = col[i];
}
sign=9;
}
}
void print()//输出牌型并输出所有有效牌
{
System.out.print("牌型为");
if(sign==1)
if(royalFlushFlag)
System.out.print("皇家同花顺");
else
System.out.print("同花顺");
else if(sign==2)
System.out.print("炸弹");
else if(sign==3)
System.out.print("葫芦");
else if(sign==4)
System.out.print("同花");
else if(sign==5)
System.out.print("顺子");
else if(sign==6)
System.out.print("三条");
else if(sign==7)
System.out.print("两对");
else if(sign==8)
System.out.print("一对");
else System.out.print("高牌");
System.out.print("\n五张有效牌为");
for(int i=0;i<5;i++)
{
char c=valuableColor[i];
int b=valuableCard[i];
if(c=='A')
System.out.print("红桃");
else if(c=='B')
System.out.print("方片");
else if(c=='C')
System.out.print("黑桃"