#ifndef CARD_H
#define CARD_H
/**
* @brief トランプカードの構造体
*
* 1枚のカードを表す構造体。
*/
typedef struct
{
char suit; /**< カードのスート: 'S'(スペード), 'H'(ハート), 'D'(ダイヤ), 'C'(クラブ) */
int rank; /**< カードの数字: 1(エース)から13(キング) */
} Card;
/**
* @brief デッキの初期化
*
* 標準的な52枚のカードデッキを順番に作成する。
* 全てのスートについて1-13の数字を設定。
*
* @param deck 52枚のカード配列へのポインタ
*/
void initDeck(Card *deck);
/**
* @brief デッキのシャッフル
*
* フィッシャー・イェーツのアルゴリズムを使用して
* カードをランダムに並び替える。
*
* @param deck 52枚のカード配列へのポインタ
*/
void shuffleDeck(Card *deck);
/**
* @brief カードの表示
*
* アスキー文字とカラー表示を使用してカードを表示する。
* ハートとダイヤは赤色、スペードとクラブは黒色で表示。
*
* @param card 表示するカード
*/
void printCard(const Card card);
/**
* @brief カードの裏面表示
*
* アスキー文字を使用してカードの裏面を表示する。
*/
void printCardBack();
#endif