用JAVA写的21点游戏
此程序是大学期间Java课程的期末设计。扑克牌去除大小王共52张牌,有4种花色,每种花色有13张牌。有庄家和玩家,庄家有他的游戏规则,具体看游戏介绍。
CardRank类:此类为枚举类,枚举扑克牌13个点数。分别是A,2,3,4,5,6,7,8,9,10,J,Q,K。
public enum CardRank {
//枚举所有出现的点数
Ace("A"),Two("2"),Three("3"),Four("4"),Five("5"),Six("6"),
Seven("7"),Eight("8"),Nine("9"),Ten("10"),Jack("J"),Queen("Q"),King("K");
//构造方法
private CardRank(String Num) {
this.Num=Num;
}
//定义变量
private String Num;
public String getNum(){
return Num;
}
public void setNum(String Num) {
this.Num=Num;
}
}
CardColor类:此类也是枚举类,枚举扑克牌的4种花色,分别是红桃Heart("\u2663"),
方块Diamond("\u2666"),梅花Club("\u2665"),黑桃Black("\u2660")。
public enum CardColor {
//枚举所有牌可能出现的颜色
Heart("\u2663"),Diamond("\u2666"),Club("\u2665"),Black("\u2660");
private CardColor(String Color) {
this.Color=Color;
}
private String Color;
public String getColor() {
return Color;
}
public void setColor(String Color) {
this.Color=Color;
}
}
Card类:一张扑克牌,有花色和点数两个属性。
public class Card {
private String flower; //花色
private String num; //点数
public Card() {
// TODO Auto-generated constructor stub
}
//带参数的构造方法
public Card(String flower,String num) {
this.flower=flower;
this.num=num;
}
public String toString() {
return flower + num;
}
public String getFlower() {
return flower;
}
public void setFlower(String flower) {
this.flower=flower;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num=num;
}
}
Deck类:一副扑克牌,自然是去除大小王。
public class Deck {
private Card[] cd = new Card[52]; //一副牌除去大小王
public Deck() {
// TODO Auto-generated constructor stub
for(int i=0;i<cd.length;) {
for (CardRank card1 : EnumSet.range(CardRank.Ace, CardRank.King)) {
for (CardColor card : EnumSet.range(CardColor.Heart, CardColor.Black)) {
cd[i]=new Card();
cd[i].setFlower(card.getColor());
cd[i].setNum(card1.getNum());
i++;
}
}
}
}
public Card[] getCard() {
return cd;
}
public Card[] getCard(int start,int end) {
Card[] cd1=new Card[end-start];
for(int i=start,j=0;i<end;i++,j++) {
cd1[j]=new Card();
cd1[j].setFlower(this.getCard()[i].getFlower());
cd1[j]