使用TS 类型别名完成 -- 扑克牌小练习(一)

109 阅读1分钟

使用类型别名

使用前面所讲的TS基本类型完成一副扑克牌的创建和打印

使用字面量、类型别名定义一副扑克牌以及花色和单张卡面信息

// 定义花色
type Color = "♥" | "♠" | "♦" | "♣";

// 定义扑克牌卡面信息
type NormalCard = {
    color: Color
    mark: number
}

// 定义一副扑克牌
type Deck = NormalCard[]

创建一个生成扑克牌函数:

function createDeck(): Deck {
    const deck: Deck = [];
    for (let i = 1; i <= 13; i++) {
        deck.push({
            mark: i,
            color: "♠"
        })
        deck.push({
            mark: i,
            color: "♣"
        })
        deck.push({
            mark: i,
            color: "♥"
        })
        deck.push({
            mark: i,
            color: "♦"
        })
    }
    return deck;
}

辅助打印函数:

function printDeck(deck: Deck) {
    let result = "\n";
    deck.forEach((card, i) => {
        let str = card.color;
        if (card.mark <= 10) {
            str += card.mark;
        }
        else if (card.mark === 11) {
            str += "J";
        }
        else if (card.mark === 12) {
            str += "Q";
        }
        else {
            str += "K";
        }
        result += str + "\t";
        if ((i + 1) % 6 === 0) {
            result += "\n";
        }
    })
    console.log(result);
}

调用:

const deck = createDeck();
printDeck(deck);