Card.java

package com.example;

public record Card(int value, int suit) implements Cloneable {
  public static final String[][] FACES = {
      {"A♠", "A♥", "A♣", "A♦"},
      {"2♠", "2♥", "2♣", "2♦"},
      {"3♠", "3♥", "3♣", "3♦"},
      {"4♠", "4♥", "4♣", "4♦"},
      {"5♠", "5♥", "5♣", "5♦"},
      {"6♠", "6♥", "6♣", "6♦"},
      {"7♠", "7♥", "7♣", "7♦"},
      {"8♠", "8♥", "8♣", "8♦"},
      {"9♠", "9♥", "9♣", "9♦"},
      {"T♠", "T♥", "T♣", "T♦"},
      {"J♠", "J♥", "J♣", "J♦"},
      {"Q♠", "Q♥", "Q♣", "Q♦"},
      {"K♠", "K♥", "K♣", "K♦"},
      {"??", "", "", ""}
  };
  public static final String[][] FACES2 = {
      {"🂡", "🂱", "🃁", "🃑"},
      {"🂢", "🂲", "🃂", "🃒"},
      {"🂣", "🂳", "🃃", "🃓"},
      {"🂤", "🂴", "🃄", "🃔"},
      {"🂥", "🂵", "🃅", "🃕"},
      {"🂦", "🂶", "🃆", "🃖"},
      {"🂧", "🂷", "🃇", "🃗"},
      {"🂨", "🂸", "🃈", "🃘"},
      {"🂩", "🂹", "🃉", "🃙"},
      {"🂪", "🂺", "🃊", "🃚"},
      {"🂫", "🂻", "🃋", "🃛"},
      {"🂭", "🂽", "🃍", "🃝"},
      {"🂮", "🂾", "🃎", "🃞"},
      {"🂠", "", "", ""}
  };

  Object superClone() throws CloneNotSupportedException {
    return super.clone();
  }
  
  @Override
  public Card clone() {
    try {
      return (Card) superClone();
    } catch (CloneNotSupportedException e) {
      throw new AssertionError();
    }
  }

  public boolean isAce() {
    return this.value == 0;
  }

  public boolean isTen() {
    return this.value > 8;
  }
}