Card类
package card;
import java.util.Objects;
/**
* @ClassName Card
* @Description :TODO
* @Author Josvin
* @Date 2021/03/06/13:48
*/
public class Card {
private final int rank;
private final String suit;
public Card(int rank, String suit) {
this.rank = rank;
this.suit = suit;
}
// [♥ A]
@Override
public String toString() {
return String.format("[%s %s]", suit, rankToString(rank));
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Card card = (Card) o;
return rank == card.rank &&
Objects.equals(suit, card.suit);
}
@Override
public int hashCode() {
return Objects.hash(rank, suit);
}
private static String rankToString(int rank) {
switch (rank) {
case 1:
return "A";
case 11:
return "J";
case 12:
return "Q";
case 13:
return "K";
default:
return String.valueOf(rank);
}
}
public static void main(String[] args) {
Card card = new Card(1, "♥");
Card card1 = new Card(2, "♠");
System.out.println(card);
System.out.println(card1);
}
}
Game类
package card;
import java.util.*;
/**
* @ClassName Game
* @Description :TODO
* @Author Josvin
* @Date 2021/03/06/13:57
*/
public class Game {
public static void main(String[] args) {
// List<Integer> list = new LinkedList<>();
// 1、初始化一副牌
ArrayList<Card> cardArrayList = initCardArrayList();
System.out.println(cardArrayList);
// 2、进行洗牌
// Collections.shuffle(cardArrayList);
shuffer(cardArrayList);
System.out.println(cardArrayList);
Card card = new Card(1, "♥");
System.out.println(cardArrayList.contains(card));
// 发牌(三个玩家)
//
ArrayList<Card> playerA = new ArrayList<>();
ArrayList<Card> playerB = new ArrayList<>();
ArrayList<Card> playerC = new ArrayList<>();
for (int i = 0; i < 5; i++) {
Card card1 = cardArrayList.remove(0);
playerA.add(card1);
Card card2 = cardArrayList.remove(0);
playerB.add(card2);
Card card3 = cardArrayList.remove(0);
playerC.add(card3);
}
System.out.println("===================");
System.out.println(playerA);
System.out.println(playerB);
System.out.println(playerC);
System.out.println(cardArrayList.size());
}
private static void shuffer(ArrayList<Card> cardArrayList) {
Random random = new Random();
for (int i = cardArrayList.size() - 1; i > 0; i--) {
//
// Card card = cardArrayList.get(i);
//
int randmIndex = random.nextInt(i);
// 交换
Card temp = cardArrayList.get(i);
cardArrayList.set(i, cardArrayList.get(randmIndex));
cardArrayList.set(randmIndex, temp);
}
}
private static ArrayList<Card> initCardArrayList() {
ArrayList<Card> cardArrayList = new ArrayList<>();
String[] suits = {"♥", "♠", "♣", "♦"};
for (String suit : suits
) {
for (int i = 1; i < 14; i++) {
Card card = new Card(i, suit);
cardArrayList.add(card);
}
}
return cardArrayList;
}
}