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.
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.
- Compilador C (por exemplo, GCC).
- Arquivo de entrada contendo os dados dos Pokémons dos jogadores (exemplo:
teste.txt).
- 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.
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
-
Compile o código com o GCC:
gcc batalha_pokemon.c -o batalha_pokemon
-
Execute o jogo:
./batalha_pokemon
-
O programa pedirá para ler o arquivo
teste.txte começará a simulação da batalha.
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.
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.
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
...
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.
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