Untitled
unknown
plain_text
8 months ago
7.5 kB
4
Indexable
typedef struct
{
char estado;
char codigoDaCidade;
char nomeDaCidade;
int populacao;
float area;
float PIB;
int pontosTuristicos;
} logicaSuperTrunfo;
logicaSuperTrunfo carta;
logicaSuperTrunfo ListaDeCartas[32];
unsigned long int perCapita(float pib, int populacao)
{
if (populacao <= 0)
{
printf("A popolução dever ser maior do que zero!!");
return 0;
}
return (unsigned long int)(pib / populacao);
}
// Função que calcula a densidade populacional
float densidadePopulacional(int populacao, float area)
{
if (area <= 0)
{
printf("A área deve ser maior do que zero!!\n");
return 0;
}
return (float)populacao / area;
}
// Função que calcula o super poder da cada carta
float superPoder(int populacao, float area, float pib, int pontosTuristicos)
{
float perCapitaValue = (float)perCapita(pib, populacao); // Converte explicitamente para evitar problemas no resultado
float resultado = populacao + area + pib + perCapitaValue + (1 / densidadePopulacional(populacao, area)) + pontosTuristicos;
return resultado;
}
// Função para requisição de dados para as cartas
int carta(char *estado, char *codigo, char *nome, int *populacao, float *area, float *pib, int *pontosTuristicos)
{
printf("Digite o Estado entre A e H: ");
scanf(" %c", estado);
*estado = toupper(*estado);
printf("Digite o código da cidade entre 1 e 4: ");
scanf("%2s", codigo);
printf("Digite o nome da Cidade: ");
scanf(" %[^\n]", nome);
printf("Digite a população da cidade: ");
scanf("%d", populacao);
printf("Digite a Área da cidade: ");
scanf("%f", area);
printf("Digite o PIB da cidade: ");
scanf("%f", &(*pib));
*pib *= 1000000000;
printf("Digite a quantidade de pontos turísticos da cidade: ");
scanf("%d", pontosTuristicos);
return 0;
}
// Função que retorna a carta com todos os valores que foram requeridos formatada como pedido
int cartaPronta(char estado, char *codigo, char *nome, int populacao, float area, float pib, int pontosTuristicos)
{
printf("\nEstado: %c", estado);
printf("\nCódigo da Carta: %c%02d", estado, atoi(codigo));
printf("\nNome da Cidade: %s", nome);
printf("\nPopulação: %d", populacao);
printf("\nÁrea: %.2f km²", area);
printf("\nDensidade Populacional: %.2f pessoas/km²", densidadePopulacional(populacao, area));
printf("\nPIB: %.2f bilhões de reais", pib / 1000000000);
printf("\nPIB per Capita: %lu reais", perCapita(pib, populacao));
printf("\nNúmero de Pontos Turísticos: %d\n", pontosTuristicos);
printf("\nSeu SuperPoder é de: %.2f\n", superPoder(populacao, area, pib, pontosTuristicos));
return 0;
}
int main()
{
// Definição das variáveis para armazenar as propriedades das cidades
// Você pode utilizar o código do primeiro desafio
char estado, estado2;
char codigoDaCidade[3], codigoDaCidade2[3];
char nomeDaCidade[50], nomeDaCidade2[50];
int populacao, quantidadePontosTuristicos, populacao2, quantidadePontosTuristicos2;
float area, PIB, area2, PIB2;
int opcao;
int opcaoMenu;
int pontuacao1 = 0, pontuacao2 = 0;
// Cadastro das Cartas:
// Implemente a lógica para solicitar ao usuário que insira os dados das cidades
// utilizando a função scanf para capturar as entradas.
// utilize o código do primeiro desafio
// printf("Crie a carta do primeiro jogador:\n");
// CRIAÇÃO DA CARTA DO PRIMEIRO JOGADOR//
// RETORNO DA PRIMEIRA CARTA//
// printf("\nAgora crie a carta do segundo jogador\n");
// // CRIAÇÃO DA CARTA DO SEGUNDO JOGADOR//
// // RETORNO DA CARTA DO SEGUNDO JOGADOR //
// Exemplo:
// printf("Digite o código da cidade: ");
// scanf("%s", codigo);
// (Repita para cada propriedade)
// Comparação de Cartas:
// Desenvolva a lógica de comparação entre duas cartas.
// Utilize estruturas de decisão como if, if-else para comparar atributos como população, área, PIB, etc.
do
{
printf("\nBem-Vindo ao Jogo Super-Trunfo!\n\n");
printf("1. Cadastrar carta\n");
printf("2. Mostrar cartas\n");
printf("3. Compare os atributos das cartas\n");
printf("4. Sobre o Jogo\n");
printf("5. Sair do Jogo\n");
scanf("%d", &opcaoMenu);
switch (opcaoMenu)
{
case 1:
printf("Digite os dados da sua carta: \n\n");
carta(&estado, codigoDaCidade, nomeDaCidade, &populacao, &area, &PIB, &quantidadePontosTuristicos);
break;
printf("Digite os dados da segunda carta: \n\n");
carta(&estado2, codigoDaCidade2, nomeDaCidade2, &populacao2, &area2, &PIB2, &quantidadePontosTuristicos2);
break;
case 2:
printf("\n--------Essa é a carta do primeiro jogador--------");
cartaPronta(estado, codigoDaCidade, nomeDaCidade, populacao, area, PIB, quantidadePontosTuristicos);
printf("\n--------Essa é a carta do segundo jogador--------");
cartaPronta(estado2, codigoDaCidade2, nomeDaCidade2, populacao2, area2, PIB2, quantidadePontosTuristicos2);
break;
case 3:
// Escolha de atributos //
do
{
// escolha dos atributos
printf("Escolha com qual dos atributos você quer competir:\n");
printf("1. População\n");
printf("2. Área\n");
printf("3. PIB\n");
printf("4. Per Capita\n");
printf("5. Densidade Populacional\n");
printf("6. Pontos Turísticos\n");
printf("7. Super Poder\n");
printf("8. Voltar para o menu principal\n");
scanf("%d", &opcao);
switch (opcao)
{
case 1:
printf("%d população1 - %d população 2", populacao, populacao2);
if (populacao > populacao2)
{
printf("\nCarta 1 venceu na propriedade: população\n\n");
pontuacao1 += 1;
}
else if (populacao < populacao2)
{
printf("\nCarta 2 venceu na propriedade: população\n\n");
pontuacao2 += 1;
}
else
{
printf("Empate no atributo população!!!");
}
break;
case 2:
printf("%.2f area 1 - %.2f area 2", area, area2);
if (area > area2)
{
printf("\nCarta 1 venceu na propriedade: área\n\n");
pontuacao1 += 1;
}
else if (area < area2)
{
printf("\nCarta 2 venceu na propriedade: área\n\n");
pontuacao2 += 1;
}
else
{
printf("Empate no atributo área!!!\n\n");
}
break;
break;
default:
break;
}
} while (opcao != 8);
break;
}
} while (opcaoMenu != 5); // menu principal finalização
Editor is loading...
Leave a Comment