Menu
CoddyTech

Nhiều lá bài

Bài học 6 trên 6 trong khóa học Trình tạo bài tây bằng văn bản của Coddy.

Hãy hiển thị nhiều thẻ!

challenge icon

Thử thách

Trung bình

Bây giờ, chúng ta muốn hỗ trợ nhiều lá bài, hãy đổi đầu vào của printCard từ số nguyên (loại bài) và chuỗi (chất bài) thành mảng số nguyên (các loại bài) và mảng chuỗi (các chất bài), ví dụ:

Đầu vào là [1, 2, 3], ["heart", "club", "spade"] sẽ tạo ra 3 lá bài: Át cơ, Hai chuồn và Ba bích.

Bạn có thể giả định rằng độ dài các mảng bằng nhau

Hãy xem các test case để biết định dạng chính xác. Bạn nên thêm một dấu cách giữa các lá bài.

Tự làm thử

#include <stdio.h>
#include <string.h>

void printCard(int kind, char* suit) {
    char* suitSymbol = " ";
    if (strcmp(suit, "club") == 0) suitSymbol = "♣";
    else if (strcmp(suit, "diamond") == 0) suitSymbol = "♦";
    else if (strcmp(suit, "heart") == 0) suitSymbol = "♥";
    else if (strcmp(suit, "spade") == 0) suitSymbol = "♠";

    char kindBuf[4] = " ";
    if (kind == 1) strcpy(kindBuf, "A");
    else if (kind >= 2 && kind <= 10) sprintf(kindBuf, "%d", kind);
    else if (kind == 11) strcpy(kindBuf, "J");
    else if (kind == 12) strcpy(kindBuf, "Q");
    else if (kind == 13) strcpy(kindBuf, "K");

    printf("╔═════════╗\n");
    if (kind == 10) printf("║ 10      ║\n");
    else printf("║ %s       ║\n", kindBuf);
    printf("║         ║\n");
    printf("║         ║\n");
    printf("║    %s    ║\n", suitSymbol);
    printf("║         ║\n");
    printf("║         ║\n");
    if (kind == 10) printf("║      10 ║\n");
    else printf("║       %s ║\n", kindBuf);
    printf("╚═════════╝\n");
}

Tất cả bài học trong Trình tạo bài tây bằng văn bản

Tự luyện tập: Trình biên dịch C online