Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save isagallerani/836bcdd3d67c4edc05d7386e53011d8e to your computer and use it in GitHub Desktop.
Save isagallerani/836bcdd3d67c4edc05d7386e53011d8e to your computer and use it in GitHub Desktop.
Jogo Perfil
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define NCARTAS 5
#define NDICAS 3
typedef struct Carta {
char* dicas[NDICAS];
char* personagem;
int usada;
} Carta;
int Jogo (Carta*, int);
void Maiusculas (char*);
int Compara (char*, char*);
int main () {
int opt, i;
Carta cards[NCARTAS];
cards[0].personagem = "JOHNNY DEPP";
cards[0].dicas[0] = "Ator, musico, produtor e diretor de cinema americano";
cards[0].dicas[1] = "Ja protagonizou com Angelina Jolie";
cards[0].dicas[2] = "FIlme de maior bilheteria: Piratas do Caribe";
cards[0].usada = 0;
cards[1].personagem = "LEONARDO DICAPRIO";
cards[1].dicas[0] = "Ganhou seu primeiro Oscar em 2016";
cards[1].dicas[1] = "Namorou modelos como Gisele Budchen, Bar Refaeli.";
cards[1].dicas[2] = "Protagonista do filme The Great Gatsby";
cards[1].usada = 0;
cards[2].personagem = "PERSONAGEM 3";
cards[2].dicas[0] = "dica1";
cards[2].dicas[1] = "dica2";
cards[2].dicas[2] = "dica3";
cards[2].usada = 0;
cards[3].personagem = "PERSONAGEM 4";
cards[3].dicas[0] = "dica 1";
cards[3].dicas[1] = "dica 2";
cards[3].dicas[2] = "dica 3";
cards[3].usada = 0;
cards[4].personagem = "PERSONAGEM 5";
cards[4].dicas[0] = "dica 1";
cards[4].dicas[1] = "dica 2";
cards[4].dicas[2] = "dica 3";
cards[4].usada = 0;
for (i = 0; i < NCARTAS; i++) {
int control;
printf ("\nSelecione sua carta: ");
scanf ("%d", &opt);
control = Jogo (cards, opt);
if (control == 0) {
i--; //se a carta é invalida, o contador não soma.
}
}
return 0;
}
int Jogo (Carta* cards, int opt) { //faz o jogo "rodar", retorna 1 se a carta escolhida é valida, 0 caso contrário
int acertou = 0, i;
char palpite[100];
if (cards[opt-1].usada == 0) {
for (i=0; i < NDICAS; i++) {
printf ("%s\nDigite seu palpite: ", cards[opt-1].dicas[i]);
__fpurge(stdin);
gets (palpite);
acertou = Compara (cards[opt-1].personagem, palpite);
if (acertou==1){
printf ("\n**********Acertou**********\n");
break;
}
else
printf ("\n***Errow***\n ");
}
if (acertou==0) printf ("A resposta era: %s\n", cards[opt-1].personagem);
cards[opt-1].usada = 1;
return 1;
} else {
printf ("Carta ja usada, selecione outra");
return 0;
}
}
void Maiusculas (char* frase) { //passa todas as letras de uma string para maiuscula
int i;
for (i = 0; i < strlen (frase); i++) {
frase[i] = toupper(frase[i]);
}
}
int Compara (char* str1, char* str2) { //compara a resposta do usuário com a resposta correta, retorna 1 se acertou, 0 se errou
Maiusculas(str2);
if (strcmp(str1, str2) == 0)
return 1;
else return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment