Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jogo de Batalha Pokémon

Este é um trabalho desenvolvido como parte de uma atividade acadêmica da UFMG, realizado em julho de 2024. O jogo simula batalhas entre Pokémons, com base em suas características de ataque, defesa, vida e tipo.

Descrição

O jogo permite que dois jogadores escolham seus Pokémons e batalhem entre si. O código lê um arquivo de entrada, onde estão os dados dos Pokémons de ambos os jogadores, e simula os confrontos, calculando o dano baseado em características de ataque, defesa e tipo. Ao final da batalha, o programa exibe o vencedor, os Pokémons sobreviventes e os derrotados.

Requisitos

  • Compilador C (por exemplo, GCC).
  • Arquivo de entrada contendo os dados dos Pokémons dos jogadores (exemplo: teste.txt).

Estrutura do código

  • Estrutura Pokemon: Define os atributos dos Pokémons, como nome, ataque, defesa, vida e tipo.
  • Funções principais:
    • def_tipo: Função responsável por identificar o tipo de um Pokémon.
    • calcular_o_dano: Função que calcula o dano de um ataque levando em consideração o tipo do Pokémon atacante e defensor.

Arquivo de entrada (teste.txt)

O arquivo de entrada deve conter os dados dos Pokémons de ambos os jogadores. O formato esperado é o seguinte:

<Número de Pokémons do Jogador 1> <Número de Pokémons do Jogador 2>
<Pokemon1 nome> <ataque1> <defesa1> <vida1> <tipo1>
<Pokemon2 nome> <ataque2> <defesa2> <vida2> <tipo2>
...

Exemplo de conteúdo de teste.txt:

3 3
Pikachu 55 40 35 eletrico
Charmander 52 43 39 fogo
Bulbasaur 49 49 45 planta
Squirtle 50 45 50 agua
Jigglypuff 50 30 45 normal
Pidgey 40 35 40 normal

Como compilar e rodar

  1. Compile o código com o GCC:

    gcc batalha_pokemon.c -o batalha_pokemon
  2. Execute o jogo:

    ./batalha_pokemon
  3. O programa pedirá para ler o arquivo teste.txt e começará a simulação da batalha.

Explicação das funções principais

def_tipo(char *tipo)

Esta função recebe o tipo de um Pokémon (como "fogo", "agua", etc.) e retorna um valor indicando se o tipo é válido ou não, com base em um conjunto pré-definido de tipos.

calcular_o_dano(Pokemon ataque, Pokemon defesa)

Esta função calcula o dano causado por um Pokémon atacante em um defensor. O cálculo leva em consideração o tipo de ambos os Pokémons, aplicando um multiplicador de dano específico dependendo da relação entre os tipos. O multiplicador pode aumentar ou diminuir o dano dependendo das vantagens e desvantagens entre os tipos.

Exemplos de interações

Durante a execução, o programa exibirá as batalhas e os resultados:

Numero de pokemons do jogador 1: 3
Numero de pokemons do jogador 2: 3
Pokemons do jogador 1:
Pikachu 55 40 35 eletrico
Charmander 52 43 39 fogo
Bulbasaur 49 49 45 planta

Pokemons do jogador 2:
Squirtle 50 45 50 agua
Jigglypuff 50 30 45 normal
Pidgey 40 35 40 normal

Resultado das Batalhas:
Pikachu venceu Squirtle
...
Jogador 1 venceu!

Pokemons sobreviventes:
Pikachu
Charmander
...

Considerações Finais

Este projeto simula um confronto entre Pokémons com base em atributos simples como ataque, defesa, vida e tipo. A lógica do jogo pode ser expandida para incluir mais tipos, habilidades e eventos aleatórios. O código foi desenvolvido com foco em entender a implementação básica de um jogo de batalha e os cálculos envolvidos no combate.

Licença

Este código é fornecido para fins educacionais. Não há garantias ou responsabilidades associadas ao uso deste código.

Autor: Marco Aurélio Gonçalves de Souza

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages