clab/c/cards.c
2024-06-28 09:09:03 +01:00

63 lines
1.5 KiB
C

#include <stdio.h>
#include <stdlib.h>
#define ToString(a) #a
typedef enum Naipe { Ouro, Espada, Pau, Copa } Naipe;
typedef enum Cara {
Duque,
Terno,
Quadra,
Quina,
Sexta,
Dama,
Valete,
Rei,
Visca,
As
} Cara;
typedef struct Carta {
Naipe naipe;
Cara cara;
int valor;
} Carta;
const Carta cartas[] = {{.naipe = Copa, .cara = Duque, .valor = 0},
{.naipe = Copa, .cara = Terno, .valor = 0},
{.naipe = Copa, .cara = Quadra, .valor = 0},
{.naipe = Copa, .cara = Quina, .valor = 0},
{.naipe = Copa, .cara = Sexta, .valor = 0},
{.naipe = Copa, .cara = Dama, .valor = 2},
{.naipe = Copa, .cara = Valete, .valor = 3},
{.naipe = Copa, .cara = Rei, .valor = 4},
{.naipe = Copa, .cara = Visca, .valor = 10},
{.naipe = Copa, .cara = As, .valor = 11}};
void printCarta(Carta carta) {
printf("Carta: cara=%s,naipe=%s,valor=%d", ToString(carta.cara),
ToString(carta.naipe), carta.valor);
}
#define __S(X) #X
#define _S(X) __S(X)
struct Point {
int x;
int y;
};
#define CAGALHAO 1
int main(void) {
struct Point pontos[] = {{1, 2}, {3, 4}};
printf("Hello cards\n");
printCarta(cartas[0]);
printf("Hello bostinha: " _S(1) "\n");
printf("Cagalhao: " __S(CAGALHAO) "\n");
printf("Cagalhao: " _S(CAGALHAO) "\n");
printf("Size array: %d", sizeof(pontos) / sizeof(pontos[0]));
}