Java问题---扑克牌

mac2026-06-17  7

//Card类 public class Card { public String rank; //牌面值 public String suit; //花色 public Card(String rank, String suit) { this.rank = rank; this.suit = suit; } @Override public String toString(){ return String.format("[%s %s]",suit,rank); } } //Demo类 import java.util.Collections; import java.util.List; import java.util.ArrayList; import java.util.Random; public class Demo { public static final String[] SUITS = {"♥","♠","♣","♦"}; //购买 扑克牌 private static List<Card> buyCard(){ List<Card> cards = new ArrayList<>(52); for (int i = 0; i < 4; i++) { Card aCard = new Card("A",SUITS[i]); cards.add(aCard); for (int j = 2; j < 11; j++) { Card card = new Card(j + "",SUITS[i]); cards.add(card); } Card jCard = new Card("J",SUITS[i]); Card qCard = new Card("Q",SUITS[i]); Card kCard = new Card("K",SUITS[i]); cards.add(jCard); cards.add(qCard); cards.add(kCard); } return cards; } private static void swap(List<Card> deck,int i , int j) { Card tem = deck.get(i); deck.set(i,deck.get(j)); deck.set(j,tem); } private static void myShuffle(List<Card> deck) { Random random = new Random(); for (int i = deck.size() - 1; i > 0; i--) { swap(deck,i,random.nextInt(i)); } } public static void main(String[] args) { List<Card> deck = buyCard(); System.out.println("刚买到的扑克牌"); System.out.println(deck); //洗牌 //Collections.shuffle(deck); myShuffle(deck); System.out.println("洗过的牌"); System.out.println(deck); //三个人,每个人抓取 5张牌 List<List<Card>> hands = new ArrayList<>(); hands.add(new ArrayList<>()); hands.add(new ArrayList<>()); hands.add(new ArrayList<>()); for(int i = 0; i < 5; ++i){ for(int j = 0; j < 3; ++j){ hands.get(j).add(deck.remove(0)); } } System.out.println("A手中的牌:"); System.out.println(hands.get(0)); System.out.println("B手中的牌:"); System.out.println(hands.get(1)); System.out.println("C手中的牌:"); System.out.println(hands.get(2)); System.out.println("剩余的牌:"); System.out.println(deck); } }
最新回复(0)