Untitled
unknown
plain_text
23 days ago
13 kB
6
Indexable
#include <stdio.h> #include <stdlib.h> #include <ctype.h> // Desafio Super Trunfo - Países // Tema 2 - Comparação das Cartas // Este código inicial serve como base para o desenvolvimento do sistema de comparação de cartas de cidades. // Siga os comentários para implementar cada parte do desafio. 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 MenuAtributos(int opcao) { 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"); scanf("%d", &opcao); return opcao; } 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 opcao1, opcao2, opcao3, opcao4, opcao5, opcao6, opcao7, opcao8; 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("Bem-Vindo ao Jogo Super-Trunfo!\n\n"); printf("Crie a carta do primeiro jogador:\n"); // CRIAÇÃO DA CARTA DO PRIMEIRO JOGADOR// printf("Digite os dados da primera carta: \n\n"); carta(&estado, codigoDaCidade, nomeDaCidade, &populacao, &area, &PIB, &quantidadePontosTuristicos); // RETORNO DA PRIMEIRA CARTA// printf("\n--------Essa é a carta do primeiro jogador--------"); cartaPronta(estado, codigoDaCidade, nomeDaCidade, populacao, area, PIB, quantidadePontosTuristicos); printf("\nAgora crie a carta do segundo jogador\n"); // CRIAÇÃO DA CARTA DO SEGUNDO JOGADOR// printf("Digite os dados da segunda carta: \n\n"); carta(&estado2, codigoDaCidade2, nomeDaCidade2, &populacao2, &area2, &PIB2, &quantidadePontosTuristicos2); // RETORNO DA CARTA DO SEGUNDO JOGADOR // printf("\n--------Essa é a carta do segundo jogador--------"); cartaPronta(estado2, codigoDaCidade2, nomeDaCidade2, populacao2, area2, PIB2, quantidadePontosTuristicos2); // Exemplo: // printf("Digite o código da cidade: "); // scanf("%s", codigo); // (Repita para cada propriedade) printf("\n\nQue comece a batalha!\n"); // Escolha de atributos // // função para escolha dos atributos MenuAtributos(opcao1); // 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. switch (opcao1) { case 1: 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; default: printf("--------Opção inválida!--------\n\n"); break; } MenuAtributos(opcao2); if (opcao2 == opcao1) { printf("\nVocê já escolheu esta opção!\n"); printf("--------------------------------------------\n\n"); return 0; } else { printf("\ncara deu entrada %d", opcao2); switch (opcao2) { case 2: if (area > area2) { printf("\nCarta 1 venceu na propriedade: área\n"); pontuacao1 += 1; } else if (area < area2) { printf("\nCarta 2 venceu na propriedade: área\n"); pontuacao2 += 1; } else { printf("Empate no atributo área!!!\n"); } break; default: printf("--------Opção inválida!--------\n\n"); break; } } MenuAtributos(opcao3); if ((opcao3 == opcao1) || (opcao3 == opcao2)) { printf("\nVocê já escolheu esta opção!\n"); printf("--------------------------------------------\n\n"); return 0; } else { printf("\ncara deu entrada %d", opcao3); switch (opcao3) { case 3: if (area > area2) { printf("\nCarta 1 venceu na propriedade: PIB\n"); pontuacao1 += 1; } else if (area < area2) { printf("\nCarta 2 venceu na propriedade: PIB\n"); pontuacao2 += 1; } else { printf("Empate no atributo PIB!!!\n"); } default: printf("--------Opção inválida!--------\n\n"); break; } } MenuAtributos(opcao4); if ((opcao4 == opcao1) || (opcao4 == opcao2) || (opcao4 == opcao3)) { printf("\nVocê já escolheu esta opção!\n"); printf("--------------------------------------------\n\n"); return 0; } else { switch (opcao4) { case 4: if (perCapita(PIB, populacao) > perCapita(PIB2, populacao2)) { printf("\nCarta 1 venceu na propriedade: renda per capita\n"); pontuacao1 += 1; } else if (perCapita(PIB, populacao) < perCapita(PIB2, populacao2)) { printf("\nCarta 2 venceu na propriedade: renda per capita\n"); pontuacao2 += 1; } else { printf("Empate no atributo Per Capita!!!\n"); } break; default: printf("--------Opção inválida!--------\n\n"); break; } } MenuAtributos(opcao5); if ((opcao5 != opcao6) || (opcao5 != opcao7)) { printf("\nVocê já escolheu esta opção!\n"); printf("--------------------------------------------\n\n"); return 0; } else { switch (opcao5) { case 5: if (densidadePopulacional(populacao, area) < densidadePopulacional(populacao2, area2)) { printf("\nCarta 1 venceu na propriedade: densidade populacional\n"); pontuacao1 += 1; } else if (densidadePopulacional(populacao, area) > densidadePopulacional(populacao2, area2)) { printf("\nCarta 1 venceu na propriedade: densidade populacional\n"); pontuacao2 += 1; } else { printf("Empate no atributo densidade Populacional!!!\n"); } break; default: printf("--------Opção inválida!--------\n\n"); break; } } MenuAtributos(opcao6); if (opcao6 != opcao7) { printf("\nVocê já escolheu esta opção!\n"); printf("--------------------------------------------\n\n"); return 0; } else { switch (opcao6) { case 6: if (quantidadePontosTuristicos > quantidadePontosTuristicos2) { printf("\nCarta 1 venceu na propriedade: números de pontos turísticos\n"); pontuacao1 += 1; } else if (quantidadePontosTuristicos < quantidadePontosTuristicos2) { printf("\nCarta 2 venceu na propriedade: números de pontos turísticos\n"); pontuacao2 += 1; } else { printf("Empate no atributo Pontos Turísticos!!!\n"); } break; default: printf("--------Opção inválida!--------\n\n"); break; } } MenuAtributos(opcao7); if (opcao7 != opcao7) { printf("\nVocê já escolheu esta opção!\n"); printf("--------------------------------------------\n\n"); return 0; } else { switch (opcao7) { case 7: if (superPoder(populacao, area, PIB, quantidadePontosTuristicos) > superPoder(populacao2, area2, PIB2, quantidadePontosTuristicos2)) { printf("\nCarta 1 venceu com o seu superPoder maior\n"); pontuacao1 += 1; } else if (superPoder(populacao, area, PIB, quantidadePontosTuristicos) > superPoder(populacao2, area2, PIB2, quantidadePontosTuristicos2)) { printf("\nCarta 2 venceu com o seu superPoder maior\n"); pontuacao2 += 1; } else { printf("Empate no atributo Super Poder!!!\n"); } break; default: printf("--------Opção inválida!--------\n\n"); break; } // Exibição dos Resultados: printf("Pontuação da Carta 1: %d", pontuacao1); printf("Pontuação da Carta 1: %d", pontuacao2); // Após realizar as comparações, exiba os resultados para o usuário. // Certifique-se de que o sistema mostre claramente qual carta venceu e com base em qual atributo. // Exemplo: if (pontuacao1 > pontuacao2) { printf("A cidade vencedora é: %s\n", nomeDaCidade); } else if (pontuacao2 > pontuacao1) { printf("A cidade vencedora é: %s\n", nomeDaCidade2); } else { printf("Houve empate dos jogadores"); } // } }
Editor is loading...
Leave a Comment