Olá, tenho um trabalho da faculdade pra fazer que é criar um jogo de cartas (buraco), mas estou com dificuldade de realiza a impressão das cartas. Segue abaixo a parte que fiz até o momento:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
#define NAIPES 4
#define CARTAS 13
#define BARALHO 104
typedef struct carta{
int naipe;
int valor;
}Carta;
typedef struct elemento{
Carta v;
}Elemento;
Carta baralho[BARALHO];
int inicia_baralho(int *b){
int i;
for(i=0; i<BARALHO; i++){
if(b[i]>=0 && b[i]<13){
baralho[i].valor=b[i]+1;
}
if(b[i]>=13 && b[i]<26){
baralho[i].valor=b[i]-12;
}
if(b[i]>=26 && b[i]<39){
baralho[i].valor=b[i]-12;
}
if(b[i]>=39 && b[i]<52){
baralho[i].valor=b[i]-12;
}
if(b[i]>=52 && b[i]<65){
baralho[i].valor=b[i]-12;
}
if(b[i]>=65 && b[i]<78){
baralho[i].valor=b[i]-12;
}
if(b[i]>=78 && b[i]<91){
baralho[i].valor=b[i]-12;
}
if(b[i]>=91 && b[i]<104){
baralho[i].valor=b[i]-12;
}
}
for(i=0; i<BARALHO; i++){
if(b[i]>=0 && b[i]<26){
baralho[i].naipe=1;
}
if(b[i]>=13 && b[i]<52){
baralho[i].naipe=2;
}
if(b[i]>=26 && b[i]<78){
baralho[i].naipe=3;
}
if(b[i]>=39 && b[i]<104){
baralho[i].naipe=4;
}
}
return 1;
}
int embaralhar (int *b){
int i, j;
srand(time(NULL));
for(i=0; i<BARALHO; i++){
b[i]=rand()%104;
}
for(i=0; i<BARALHO; i++){
for(j=i+1; j<BARALHO; j++){
if(b[j]==b[i]){
b[j]++;
i=0;
j=0;
}
if(b[j]==104){
b[j]=0;
}
}
}
}
int imprime_baralho(int *b){
int i;
for(i=0; i<CARTAS; i++){
printf("Carta %d: %d | Naipe: %d\n", i, baralho[i].valor, baralho[i].naipe);
}
return 1;
}
int main(){
setlocale(LC_ALL, "Portuguese");
int baralho[BARALHO];
inicia_baralho(baralho);
imprime_baralho(baralho);
embaralhar(baralho);
system ("pause");
return 0;
}