/** The four suits of a standard deck. */ export enum Suit { Clubs = 0, Diamonds = 1, Hearts = 2, Spades = 3, } export const ALL_SUITS: readonly Suit[] = [Suit.Clubs, Suit.Diamonds, Suit.Hearts, Suit.Spades]; const SUIT_SYMBOLS: Record = { [Suit.Clubs]: '\u2663', [Suit.Diamonds]: '\u2666', [Suit.Hearts]: '\u2665', [Suit.Spades]: '\u2660', }; /** Suit names as used by the card art file names. */ const SUIT_NAMES: Record = { [Suit.Clubs]: 'clubs', [Suit.Diamonds]: 'diamonds', [Suit.Hearts]: 'hearts', [Suit.Spades]: 'spades', }; export function suitSymbol(suit: Suit): string { return SUIT_SYMBOLS[suit]; } export function suitName(suit: Suit): string { return SUIT_NAMES[suit]; } export function isRedSuit(suit: Suit): boolean { return suit === Suit.Diamonds || suit === Suit.Hearts; }