1).写一个卡片类Card类, 含两个属性: 一个花色(Suit),一个是点数(Rank).
2).写个扑克牌Poker类,含52张 Card,2张副牌(大王和小王)不计算
3).写一个发牌者 Dealer 类,有属性 扑克牌Poker类,并提供方法:
发牌 deal() , 洗牌 shuffle()
4).写一个 玩家 Player 类
5).在单元测试中,可以初始化3个玩家,并由发牌者轮流发牌。
最后打印3个玩家手中的牌
代码如下:
public class Card {
private String suit;
private String rank;
public String getSuit() {
return suit;
}
public void setSuit(String suit) {
this.suit = suit;
}
public String getRank() {
return rank;
}
public void setRank(String rank) {
this.rank = rank;
}
public Card() {
super();
// TODO Auto-generated constructor stub
}
public Card(String suit, String rank) {
super();
this.suit = suit;
this.rank = rank;
}
@Override
public String toString() {
return "Card [suit=" + suit + ", rank=" + rank + "]";
}
}
//
import java.util.ArrayList;
import java.util.List;
enum Suit{HEART,SPADE, DIAMONDS,CLUBS};
public class Poker {
private List<Card> cards;
public List<Card> getCards() {
return cards;
}
public void setCards(List<Card> cards) {
this.cards = cards;
}
}
//
import java.util.List;
public class Player {
private String name;
private List<Card> cards;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Card> getCards() {
return cards;
}
public void setCards(List<Card> cards) {
this.cards = cards;
}
public Player() {
super();
// TODO Auto-generated constructor stub
}
public Player(String name, List<Card> cards) {
super();
this.name = name;
this.cards = cards;
}
}
//
import java.util.Collections;
import java.util.List;
public class Dealer {
private Poker poker;
public Poker getPoker() {
return poker;
}
public void setPoker(Poker poker) {
this.poker = poker;
}
public Dealer() {
super();
// TODO Auto-generated constructor stub
}
public Dealer(Poker poker) {
super();
this.poker = poker;
}
public void shuffle() {
Collections.shuffle(poker.getCards());
}
public void deal(List<Player> players) {
List<Card> cs=this.getPoker().getCards();
for (int i = 0; i < cs.size(); i+=3) {
players.get(0).getCards().add(cs.get(i));
}
for (int i = 1; i < cs.size(); i+=3) {
players.get(1).getCards().add(cs.get(i));
}
for (int i =2;i < cs .size(); i+=3) {
players.get(2).getCards().add(cs.get(i));
}
for (int i = 0; i < players.size(); i++) {
System.out.println("玩家"+players.get(i).getName()+":");
List<Card> cards=players.get(i).getCards();
for (int j = 0; j< cards.size(); j++) {
System.out.print(cards.get(j).getSuit()+""+cards.get(j).getRank()+" ");
}
System.out.println();
}
}
}
import java.util.ArrayList;
import java.util.List;
public class TestPoker {
static String suits[]= {"黑桃","红桃","方片","梅花"};
static String ranks[]= {"A","2","3","4","5","6","7","8","9","10","L","Q","K"};
public static void main(String[] args) {
TestPoker t=new TestPoker();
Poker p=t.initPoker();
Dealer d=new Dealer(p);
d.shuffle();
List<Player> ps=new ArrayList<>();
ps.add(new Player("tom",new ArrayList<>()));
ps.add(new Player("jack",new ArrayList<>()));
ps.add(new Player("jim",new ArrayList<>()));
d.deal(ps);
}
public Poker initPoker() {
Poker p=new Poker();
List<Card> cs=new ArrayList<>();
for (int i = 0; i < suits.length; i++) {
for (int j = 0; j < ranks.length; j++) {
Card c=new Card(suits[i],ranks[j]);
cs.add(c);
}
}
p.setCards(cs);
return p;
}
}
代码测试:
测试后的代码!