文章标题

发牌小游戏

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()+"牌未发");

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值