0
点赞
收藏
分享

微信扫一扫

顺序表中的发扑克牌示例

IT影子 2022-05-06 阅读 72

扑克牌

1.买一副扑克牌(创建一副52张的扑克牌除大小王)
2.进行洗牌操作
3.进行发牌操作

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

class Card{
 private String suit;//定义花色
 private int rank;//定义牌的大小

    public Card(String suit, int rank) {
        this.suit = suit;
        this.rank = rank;
    }

    public String getSuit() {
        return suit;
    }

    public void setSuit(String suit) {
        this.suit = suit;
    }

    public int getRank() {
        return rank;
    }

    public void setRank(int rank) {
        this.rank = rank;
    }

    @Override
    public String toString() {
        return "[" + suit  + " "+rank+"]";
    }
}
public class TestCard {
//    定义花色
    public static final String[] suits={"♥","♠","♣","♦"};
//    买牌
    public static List <Card> buycard(){
    //创建一个储存牌的空间
        List<Card> desk=new ArrayList<>();
        //四种类型的花色
        for (int i = 0; i <4 ; i++) {
        //每种花色有13张牌
            for (int j = 1; j <= 13; j++) {
                String suit=suits[i];
                Card card=new Card(suit,j);
                //将牌放入空间中
                desk.add(card);
            }
        }
        return desk;
    }
//    洗牌
    public static void WashCard(List<Card>cards){
    
        for (int i = cards.size()-1; i >0 ; i--) {
       // random()方法返回随机生成的一个实数,它在[0,1)范围内。
            Random random=new Random();
            int index= random.nextInt(i);
            swap(cards,i,index);
        }
    }
    //交换里面的值
    public static void swap(List<Card>cards,int i,int j){
        Card tmp=cards.get(i);
        cards.set(i,cards.get(j));
        cards.set(j,tmp);

    }
    public static void main(String[] args) {
        TestCard testCard=new TestCard();
//        testCard.buycard();
//        System.out.println( testCard.buycard());
        List<Card> cards=buycard();
        System.out.println("买回来的牌");
        System.out.println(cards);
        WashCard(cards);
        System.out.println("洗完之后的牌");
        System.out.println(cards);
        //把打牌的三个人拉来,创建三个对象
        List<Card> hands1=new ArrayList<>();
        List<Card> hands2=new ArrayList<>();
        List<Card> hands3=new ArrayList<>();
        //创建一个二维数组,把三个人放在一个桌子上
        List<List<Card>> hands=new ArrayList<>();
        hands.add(hands1);
        hands.add(hands2);
        hands.add(hands3);
        //开始发牌,发牌规则
        for (int i = 0; i <5 ; i++) {
            for (int j = 0; j < 3; j++) {
                Card card=cards.remove(0);
               hands.get(j).add(i,card);

            }
        }
        System.out.println("第一个人的牌:"+hands1);
        System.out.println("第二个人的牌:"+hands2);
        System.out.println("第三个人的牌:"+hands3);

    }
}

举报

相关推荐

0 条评论