发牌小游戏
import java.util.*;
//创建一个牌的类
public class Card {
private int playerNumber;
private int cardNimer;
String [] huase;
String [] paivalue;
List<String> cardList;
//初始化器
public Card(){}
//初始化器
public Card(int p, int c){
this.setPlayerNumber(p);
this.setCardNimer(c);
//huase ={"红桃","黑桃","梅花","方块"};不能通过此方法初始化数组
huase = new String[4];
huase[0] = "红桃";
huase[1] = "黑桃";
huase[2] = "梅花";
huase[3] = "方块";
paivalue = new String[13];
paivalue[0] = "A";
for(int i=1; i<=9; i++){
paivalue[i] = String.valueOf(i+1);
}
paivalue[10] = "J";
paivalue[11] = "Q";
paivalue[12] = "K";
cardList = new ArrayList<String>();
//将牌添加到集合中
for(int i=0; i<huase.length; i++){
for(int j=0; j<paivalue.length; j++){
cardList.add(huase[i]+paivalue[j]);
}
}
}
public int getPlayerNumber() {
return playerNumber;
}
public void setPlayerNumber(int playerNumber) {
this.playerNumber = playerNumber;
}
public int getCardNimer() {
return cardNimer;
}
public void setCardNimer(int cardNimer) {
this.cardNimer = cardNimer;
}
/**
* 洗牌
*/
public void xipai(){
//使用集合中的shuffle打乱集合中顺序
Collections.shuffle(cardList);
}
/**
* 发牌
*/
public void fapai(){
//截取每次发牌张数的,并形成一个子集合,将其展示出来,并清除,同时会影响到父集合的删除
List<String> list = cardList.subList(0, this.getCardNimer());
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
list.clear();
}
}
/**
* 测试发牌
* @author Administrator
*
*/
public class TestCard {
public static void main(String[] args) {
Card card = new Card(3,1);//初始化玩家数量与,每个玩家的牌数
card.xipai();
//一个玩家发一次牌
for(int i=1;i<=card.getPlayerNumber(); i++){
System.out.println("第"+i+"个玩家的牌是:");
card.fapai();
}
System.out.println("还剩下:"+card.cardList.size()+"牌未发");
}
}