Untitled
unknown
plain_text
9 months ago
11 kB
5
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²\n", 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 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 //
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. Total (só pode ser escolhida se já tiver escolhido algum atributo antes...)\n");
scanf("%d", &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;
}
printf("Escolha com qual dos atributos você quer competir:\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. Total (só pode ser escolhida se já tiver escolhido algum atributo antes...)\n");
scanf("%d", &opcao2);
if (opcao2 == opcao1)
{
printf("\nVocê já escolheu esta opção!\n");
printf("--------------------------------------------\n\n");
}
else
{
switch (opcao2)
{
case 2:
if (area > area2)
{
printf("\nPrimeiro jogador ganhou na propriedade: área\n");
pontuacao1 += 1;
}
else if (area < area2)
{
printf("\nSegundo Jogador na propriedade: área\n");
pontuacao2 += 1;
}
else
{
printf("Empate no atributo área!!!");
}
break;
default:
printf("--------Opção inválida!--------\n\n");
break;
}
}
/* 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");
printf("6. Pontos Turísticos\n");
printf("7. Super Poder\n");
printf("8. Total (só pode ser escolhida se já tiver escolhido algum atributo antes...)\n");
scanf("%d", &opcao3);
/* if((opcao3 == opcao1) || (opcao3 == opcao2)) {
printf("Você já escolheu esta opção!\n");
} else {
switch(opcao3) {
case 3 :
if (PIB > PIB2)
{
printf("\nPrimeiro Jogador ganhou na propriedade: PIB\n");
pontuacao1 += 1;
}
else
{
printf("\nSegundo Jogador ganhou na propriedade: PIB\n");
pontuacao2 += 1;
}
break;
default:
printf("--------Opção inválida!--------\n\n");
return;
}
}
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");
printf("6. Pontos Turísticos\n");
printf("7. Super Poder\n");
printf("8. Total (só pode ser escolhida se já tiver escolhido algum atributo antes...)\n");
scanf("%d", &opcao4);
if((opcao4 == opcao1) || (opcao4 == opcao2) || (opcao4 == opcao3)) {
printf("Você já escolheu esta opção!\n");
} else {
switch(opcao4) {
case 4 :
if (perCapita(PIB, populacao) > perCapita(PIB2, populacao2))
{
printf("\nPrimeiro Jogador ganhou na propriedade: renda per capita\n");
pontuacao1 += 1;
} else {
printf("\nSegundo Jogador ganhou na propriedade: renda per capita\n");
pontuacao2 += 1;
}
break;
default:
printf("--------Opção inválida!--------\n\n");
break;
}
}
case 5 :
if (densidadePopulacional(populacao, area) < densidadePopulacional(populacao2, area2))
{
printf("\nPrimeiro Jogador ganhou na propriedade: densidade populacional\n");
pontuacao1 += 1;
}
else
{
printf("\nSegundo Jogador ganhou na propriedade: densidade populacional\n");
pontuacao2 += 1;
}
break;
case 6:
if (quantidadePontosTuristicos > quantidadePontosTuristicos2)
{
printf("\nPrimeiro Jogador ganhou na propriedade: números de pontos turísticos\n");
pontuacao1 += 1;
}
else
{
printf("\nSegundo Jogador ganhou na propriedade: números de pontos turísticos\n");
pontuacao2 += 1;
}
break;
case 7 :
if (superPoder(populacao, area, PIB, quantidadePontosTuristicos) > superPoder(populacao2, area2, PIB2, quantidadePontosTuristicos2))
{
printf("\nPrimeiro Jogador ganhou com o seu superPoder maior\n");
pontuacao1 += 1;
}
else
{
printf("\nSegundo Jogador ganhou com o seu superPoder maior\n");
pontuacao2 += 1;
}
break;
case 8 :
if (pontuacao1 > pontuacao2)
{
printf("Primeiro jogador venceu!\n");
}
else
{
printf("\nSegundo Jogador venceu!\n");
}
printf("\nPontuação da carta do Primeiro Jogador é: %d", pontuacao1);
printf("\nPontuação da carta do Segundo Jogador é: %d\n", pontuacao2);
break;
default: printf("Escolha uma opção válida!");
break;
}
*/
// Exibição dos Resultados:
// 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:
// printf("A cidade vencedora é: %s\n", cidadeVencedora);
return 0;
}
Editor is loading...
Leave a Comment