Skip to content

UnBParadigmas2023-2/2023.2_G3_Logico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Akinator de Pokémon

Disciplina: FGA0210 - PARADIGMAS DE PROGRAMAÇÃO - T01
Nro do Grupo: 03
Paradigma: Lógico

Alunos

Matrícula Aluno
19/0010606 Artur de Sousa Vieira
19/0024950 Arthur de Melo Garcia
19/0011424 Carlos Eduardo Miranda Roriz
17/0032591 Edvan Barreira Gomes Júnior
19/0109963 João Victor Teixeira Batista
19/0112123 Lucas Gabriel Sousa Camargo Paiva
20/0023411 Luíza Esteves dos Santos
16/0141842 Philipe Rosa Serafim

Sobre

O PokeAkinator é um software de advinhação de Pokemon da primeira geração. A cada rodada, a aplicação faz uma pergunta a respeito de alguma característica do monstrinho em questão (cuja a resposta sempre deve ser 'sim' ou 'não'), até que encontre algum que seja compatível com a descrição. Na primeira geração existem 151 Pokemon diferentes, com cores, formas, tipos e diversas outras característica que fazem cada um deles uma combinação única, então para descobrir qual deles é o escolhido, a aplicação tenta dividí-los em grupos, dessa forma a cada rodada uma grande quantidade deles pode ser removida de uma vez, permitindo chegar na resposta de maneira eficiente. Abaixo temos alguns exemplos de como os monstrinhos são agrupados.

  • Pokemon que não evoluem: nao_evoluem
  • Pokemon que evoluem, possuem dois estágios de evolução e apenas um tipo: evoluem-dois_estagios-1tipo
  • Pokemon que evoluem, possuem dois estágios de evolução e dois tipos: evoluem-dois_estagios-2tipos
  • Pokemon que evoluem, possuem mais de dois estágios de evolução e apenas um tipo: evoluem-mais_de_dois-1tipo
  • Pokemon que evoluem, possuem mais de dois estágios de evolução e dois tipos: evoluem-mais_de_dois-2tipos

Todas as informações dos pokemons, incluindo tipos, evoluções e outros foram coletadas na PokeApi.

A lista de Pokemons iniciais pode ser encontrada nesse link: Pokemons da primeira geração

Screenshots

Adicione 2 ou mais screenshots do projeto em termos de interface e/ou funcionamento.

Instalação

Linguagens: Prolog
Tecnologias: Prolog
Descreva os pré-requisitos para rodar o seu projeto e os comandos necessários. Insira um manual ou um script para auxiliar ainda mais. Gifs animados e outras ilustrações são bem-vindos!

Uso

Vídeo

Vídeo

Participações

Nome do Membro Contribuição Significância da Contribuição para o Projeto (Excelente/Boa/Regular/Ruim/Nula)
Artur de Sousa Vieira Ajuda com o funcionamento teórico da aplicação, definição das perguntas e redigir documentação Boa
Arthur de Melo Garcia Ajuda com definições de escopo e documentação regular
Carlos Eduardo Miranda Roriz
Edvan Barreira Gomes Júnior Ajuda no desenvolvimento do parser, documentação, resolução de problemas e desenvolvimento da lógica de dedução Excelente
João Victor Teixeira Batista Desenvolvimento das principais funcionalidades da lógica de dedução Excelente
Lucas Gabriel Sousa Camargo Paiva Ajuda no desenvolvimento do parser e resolução de problemas Excelente
Luíza Esteves dos Santos Desenvolvimento do parser, documentação e resolução de problemas Excelente
Philipe Rosa Serafim Desenvolvimento do extractor, ajuda no desenvolvimento do parser, documentação, resolução de problemas e desenvolvimento da lógica de dedução Excelente

Outros

Lições Aprendidas

  • Paradigma Lógico: O grupo teve a compreensão de aplicação do paradigma lógico na programação de uma aplicação com foco em dedução lógica.

  • Prolog: Para a aplicação do paradigma lógico o grupo aprendeu a linguagem Prolog, que foi usada para a programação da aplicação.

  • Trabalho em equipe: A colaboração tanto na concepção teórica da aplicação quanto a implementação foi de supra importância para o sucesso da entrega.

Percepções

Assim como na entrega anterior, o grupo tendeu a focar em questões conceituais antes do funcionamento com o paradigma, entretanto desta vez a ideia veio partindo do paradigma primeiro, o que foi melhor para a adaptação da ideia para a linguagem.

Contribuições e Fragilidades

O grupo conseguiu aplicar bem o paradigma na aplicação, mostrando que para problemas de lógioca a linguagem é muito eficaz e direta. Assim foi implementado de maneira interessate um problema já conhecido por todos, baseado no Akinator, utilizando uma linguagem nova.

Já em fragilidades, o grupo teve maior dificuldade na distribuição das atividades, visto que sendo uma linguagem em que o trabalho conjunto é mais difícil do que outras linguagens, acabou que o trabalho ficou mais concentrado em pessoas específicas na hora da implementação, ainda que houvesse uma maior contribuição na parte de concepção.

Trabalhos Futuros

  • Interface gráfica: Anda que o funcionamento da aplicação seja conceitualmente e funcionalmente adequada, ainda é uma grande área de continuação a implementação de uma interface gráfica para a melhor interação com o usuário.

  • Outras gerações: Além disso sempre há a possíbilidade de expanção da base de dados dos pokemons, podendo usar várias outras gerações separada ou conjuntamente.

Fontes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages