·

Engenharia de Produção ·

Linguagens de Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

UNIVERSIDADE FEDERAL DE MINAS GERAIS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO TRABALHO PRÁTICO 1 NOME DO TRABALHO NOME ALUNO Novembro 2023 1 Introdução 3 2 Descrição do Algoritmo e Procedimentos utilizados 3 Exemplo de Diagrama 3 Exemplo de Estilo de Texto Esperado 3 Exemplo de Execução 4 3 Testes e Erros 4 Processo de Criação do Algoritmo 4 Exemplos de Erros Comuns e Correções 5 Testes Realizados 5 1 Introdução Na introdução você deve descrever o problema ou seja explicar a atividade que foi desenvolvida no trabalho com suas palavras Descreva o mecanismo de batalha as entradas esperadas o formato da saída previsto pelo problema e o objetivo final do programa 2 Descrição do Algoritmo e Procedimentos utilizados Nesta seção você irá detalhar o funcionamento do programa desenvolvido Descreva os tipos das variáveis utilizadas o fluxo lógico do programa e qualquer estrutura de dados importante Exemplo de Diagrama Não há necessidade de fazer um diagrama lógico mas fica de sugestão Exemplo de Estilo de Texto Esperado O jogo começa com os jogadores 1 e 2 informando o número de Pokémon utilizados Esses números são lidos pela função scanf e armazenados nas variáveis m número de Pokémon do jogador 1 e n número de Pokémon do jogador 2 Após esse passo foram implementadas duas continuar explicando a lógica do programa Exemplo de Execução Adicione um exemplo de input e descreva como seu código é executado em cada passo Input 3 4 Informações adicionais de entrada Processo 1 Leitura do número de Pokémon para cada jogador 2 Output Saída esperada 3 Testes e Erros Nesta seção descreva como foi o processo de criação do algoritmo Quais erros você observou nas primeiras tentativas Como você corrigiu esses erros Quais testes você realizou Processo de Criação do Algoritmo Errar faz parte do processo de programação Identificar e corrigir os erros é essencial para se tornar um bom programador Conte sobre o processo de desenvolvimento os desafios encontrados e como você os superou Exemplos de Erros Comuns e Correções Erro Descrição do erro 1 Correção Descrição da correção Erro Descrição do erro 2 Correção Descrição da correção Testes Realizados Descreva os diferentes testes que você realizou para garantir que seu programa funciona corretamente Inclua exemplos de inputs variados e os resultados esperados 4 Conclusão Conte sobre o que achou do trabalho o que aprendeu com ele e o que poderia ser melhorado no projeto para tornar este programa mais interessante TRABALHO PRÁTICO 1 POKÉMON EU ESCOLHO VOCÊ NOME ALUNO Junho 2024 Introdução3 Descrição do Algoritmo e Procedimentos utilizados4 Visão Geral do Código4 Estrutura do Código4 Definições e Constantes4 Estrutura Pokemon5 Tipos de Pokémon5 Funções Auxiliares5 Função Principal main6 Fluxo de Execução6 Exemplo de Execução8 Input8 Processo8 Output8 Testes e Erros9 Exemplos de Erros Comuns e Correções9 Testes Realizados9 Conclusão10 Introdução Neste trabalho prático de programação em C foi desenvolvido um sistema de batalhas Pokémon onde dois treinadores inserem seus respectivos Pokémons para competirem entre si Cada treinador seleciona seus Pokémons que entram em batalha na ordem em que foram inseridos e lutam até que a vida de um deles se esgote Os Pokémons possuem atributos essenciais para a batalha incluindo vida força de ataque força de defesa nome e tipo Além disso o sistema considera a relação de superefetividade e pouca efetividade entre diferentes tipos de Pokémons o que influencia significativamente o resultado dos combates A cada rodada os Pokémons atacam e se defendem conforme seus atributos e o tipo de seu adversário O combate continua até que todos os Pokémons de um treinador sejam derrotados Ao final das batalhas o sistema informa quem foi o vencedor lista os Pokémons sobreviventes e os Pokémons que foram derrotados Por meio deste tema popular entre os alunos foi possível praticar os conhecimentos adquiridos durante a disciplina de uma forma mais descontraída Descrição do Algoritmo e Procedimentos utilizados Visão Geral do Código O código implementa um sistema de batalhas Pokémon em C onde dois jogadores inserem seus Pokémons e eles lutam até que todos os Pokémons de um dos jogadores sejam derrotados Cada Pokémon possui atributos como vida força de ataque força de defesa nome e tipo A relação de superefetividade e pouca efetividade entre tipos específicos de Pokémon influencia o dano causado durante as batalhas Estrutura do Código Definições e Constantes Estrutura Pokemon Define a estrutura Pokémon com os atributos Tipos de Pokémon Define os tipos de Pokémon como strings Funções Auxiliares obtemTipo Obtém o índice do tipo de Pokémon a partir de uma string poucoEfetivo e muitoEfetivo Determinam a relação de efetividade entre os tipos de Pokémon criaPokemon Inicializa um objeto Pokemon trocaJogador Alterna entre os jogadores avaliaAtk Avalia o multiplicador de ataque baseado na efetividade do tipo Função Principal main 1 Inicializa os tipos de Pokémon 2 Lê o número de Pokémons para cada jogador e seus atributos 3 Armazena os Pokémons de cada jogador em uma matriz 4 Realiza as batalhas em turnos até que um dos jogadores fique sem Pokémons 5 Imprime o resultado da batalha Pokémons sobreviventes e derrotados Fluxo de Execução 1 Inicialização dos Tipos de Pokémon strcpytipos0 eletrico strcpytipos1 agua strcpytipos2 fogo strcpytipos3 gelo strcpytipos4 pedra 2 Leitura dos Pokémons scanfdd n m Leitura dos Pokémons do jogador 1 for int i 0 i n i Leitura dos Pokémons do jogador 2 for int i 0 i m i 3 Batalhas Define o Pokémon atacante e defensor Calcula o dano considerando a efetividade Atualiza a vida do defensor Verifica se o defensor foi derrotado Alterna o jogador da vez int pokemonAtual2 int jogadorDaVez 0 pokemonAtual0 pokemonAtual1 0 while pokemonAtual1 m 1 pokemonAtual0 n 1 4 Resultados Verifica qual jogador venceu Imprime os Pokémons sobreviventes e derrotados if pokemonAtual0 n else printfPokémons sobreviventes for int i pokemonAtual0 i n i for int i pokemonAtual1 i m i printfPokémons derrotados for int i 0 i pokemonAtual0 i for int i 0 i pokemonAtual1 i Exemplo de Execução Input 3 2 Squirtle 10 15 15 agua Vulpix 15 15 15 fogo Onix 5 20 20 pedra Golem 20 5 10 pedra Charmander 20 15 12 fogo Processo Na primeira linha são lidas as quantidades de Pokémon de cada treinador Seja N 3 e M 2 Nas próximas 3 linhas em cada linha serão lidas as informações dos Pokémons do primeiro treinador e armazenadas no vetor p0 Nas próximas 2 linhas em cada linha serão lidas as informações dos Pokémons do segundo treinador e armazenadas no vetor p1 São realizadas as batalhas até que um treinador esgote todos os Pokémons Verificase o vencedor São impressos os Pokémons sobreviventes e os derrotados em seguida Output Testes e Erros Exemplos de Erros Comuns e Correções Erro O programa não estava terminando a leitura dos casos de teste Correção O problema era que depois da leitura de n e m o for estava percorrendo de 0 a n ao invés de 0 a n1 Testes Realizados Foram utilizados os casos de teste fornecidos Conclusão Este trabalho foi uma excelente oportunidade de aprendizado proporcionando uma aplicação prática de diversos conceitos de programação em C Com algumas melhorias como uma interface mais amigável a adição de novos atributos e habilidades o programa poderia se tornar ainda mais desafiador Essas melhorias não apenas aumentariam a diversão mas também forneceriam um aprendizado ainda mais profundo e abrangente para os alunos