Untitled

 avatar
unknown
plain_text
10 days ago
7.5 kB
3
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