Java模拟实现扑克牌打牌

觉得有用的记得三连哦亲!!

代码:

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

class Card{
    private int rank;
    private String suit;

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

    @Override
    public String toString() {
        return "["+this.suit+" "+this.rank+"]";
    }
}



public class TestDemo {

    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 shuffle(List<Card> cards){
        int i = cards.size();
        for (i=i-1; i >0 ; i--) {
            Random random=new Random();
            int rand=random.nextInt(i);
            swap(cards,i,rand);
        }
    }

    public static final String[] suits={"♥","♦","♣","♥"};

    //没有大小王

    public static List<Card> buyCard(){
        ArrayList<Card> cards=new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            for (int j = 1; j <= 13; j++) {
                cards.add(new Card(j,suits[i]));
            }
        }
        return cards;
    }

    public static void main(String[] args) {
        List<Card> cards=buyCard();
        System.out.println("买牌"+cards);

        shuffle(cards);
        System.out.println("洗牌"+cards);

        ArrayList<List<Card>> hand=new ArrayList<>();

        List<Card> hand1=new ArrayList<>();
        List<Card> hand2=new ArrayList<>();
        List<Card> hand3=new ArrayList<>();

        hand.add(hand1);
        hand.add(hand2);
        hand.add(hand3);

        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 3; j++) {
                Card card=cards.remove(0);
                hand.get(j).add(card);
            }
        }

        System.out.println("第1个人的牌"+hand1);
        System.out.println("第2个人的牌"+hand2);
        System.out.println("第3个人的牌"+hand3);
        System.out.println("剩下的牌"+cards);

    }

    public static void main1(String[] args) {
        Card card=new Card(3,"♥");
        card.toString();
    }
}

这是运行之后的结果:

 有问题可以私聊我,都会回复的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java编写一个简单的扑克牌分发程序,以下是一个示例: ```java import java.util.ArrayList; import java.util.Collections; public class PokerGame { private ArrayList<String> deck; public PokerGame() { deck = new ArrayList<>(); String[] suits = {"♠️", "♥️", "♦️", "♣️"}; String[] ranks = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; // 初始化一副牌 for (String suit : suits) { for (String rank : ranks) { deck.add(rank + suit); } } // 洗牌 Collections.shuffle(deck); } public void dealCards(int numPlayers, int numCards) { if (numPlayers * numCards > deck.size()) { System.out.println("牌不够分!"); return; } for (int i = 0; i < numPlayers; i++) { System.out.printf("玩家 %d 的牌:", i + 1); for (int j = 0; j < numCards; j++) { String card = deck.remove(0); System.out.print(card + " "); } System.out.println(); } } public static void main(String[] args) { PokerGame game = new PokerGame(); game.dealCards(4, 5); } } ``` 这个程序首先创建了一个包含52张扑克牌的牌组,然后使用`Collections.shuffle()`方法对牌组进行洗牌。接下来,`dealCards()`方法用来发牌,它接受两个参数:玩家数量和每个玩家的牌数。程序会检查牌组中是否有足够的牌来分发给玩家,如果不够,则输出错误信息。然后,程序会依次将牌发给每个玩家,并打印出每个玩家手中的牌。 在示例中,`main()`方法创建了一个PokerGame对象,并调用`dealCards()`方法将5张牌发给4个玩家。你可以根据需要修改玩家数量和每个玩家的牌数。运行程序,你将看到输出的结果是每个玩家手中的牌。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值