Disciplina: FGA0210 - PARADIGMAS DE PROGRAMAÇÃO - T01
Nro do Grupo: 04
Paradigma: Lógico
Matrícula | Aluno |
---|---|
18/0096991 | Álvaro Leles |
18/0100831 | Gabriel Avelino |
18/0145088 | Gabriel Bonifácio |
18/0101617 | Guilherme de Morais |
18/0102087 | Ian Fillipe |
18/0113666 | Ítalo Guimarães |
18/0102656 | Ítalo Vinícius |
20/0043111 | Ricardo De Castro |
Para a entrega do paradigma lógico, foi escolhido o jogo clássico de tabuleiro Cara-a-Cara, no qual o objetivo é descobrir as pessoas (peças) do outro jogador, através de dicas sobre as características únicas de cada peça do jogador. Nessa versão, o jogador tentara adivinhar a pessoa que a máquina ira gerar a partir de uma base de dados que foi criada baseada no verdadeiro Cara-a-cara, adivinhando se a pessoa escolhida possui ou não as características.
Linguagens: PROLOG
Tecnologias: SWI-Prolog
(É necessário para rodar esta aplicação SWI-Prolog e recomenda-se rodá-la no ambiente Ubuntu ou utilizando no windows o WSL)
Para instalar o SWI-Prolog no Ubuntu, basta digitar os comandos:
sudo apt-add-repository ppa:swi-prolog/stable
sudo apt-get update
sudo apt-get install swi-prolog
No terminal, basta executar o seguinte comando:
swipl menu.pl
A partir daí, basta jogar conforme as instruções descritas no terminal, lembrando sempre de adicionar um ponto final(.) ao final de cada entrada.
Nome do Membro | Contribuição | Significância da Contribuição para o Projeto (Excelente/Boa/Regular/Ruim/Nula) |
---|---|---|
Álvaro Leles | Participei das definições iniciais do projeto, como construção da metodologia e da base de conhecimento e contribuí com o desenvolvimento inicial e final do projeto principalmente | Boa |
Gabriel Avelino | Participei das criações do menu e da lógica do projeto | Boa |
Gabriel Bonifácio | Criação da função Jogo, da introdução inicial e contribuição na funcionalidade de chutar o nome, além de participações em outras funções. | Excelente |
Guilherme de Morais | Participei da criação das lógicas para contagem de tentativas, criação de condicionais e lógica de filtragem de personagens sobre as perguntas feitas pelo jogador. | Excelente |
Ítalo Alves | Contribuição na criação dos personagens na base de dados, implementação do tutorial e das mensagens nos menus. | Boa |
Ian Fillipe | Implementei a estratégia de realizar a interseção de listas para fazer a filtragem de personagens, participei da criação da regra 'jogo', e dei suporte no desenvolvimento de outra partes do projeto | Excelente |
Ítalo Vinícius | Participei de grande parte do desenvolvimento da lógica do jogo e para resolver os problemas que estávamos tendo | Excelente |
Ricardo Castro | Contribuição para popular a base de dados e implementação dos menus e do tutorial. | Boa |
Quaisquer outras informações sobre o projeto podem ser descritas aqui.
(i) Lições Aprendidas;
- Aprendizado sobre construção de bases de conhecimento e manipulá-las.
- Entendemos como os fatos e regras funcionam além dos predicados fornecidos pelo SWI
(ii) Percepções;
Entendemos a importância e as consequências de uma base bem construída e estruturada para os futuros trabalhos feitos sobre ela. Também achamos a estrutura muito parecida com a linguagem Haskell, apesar de ser um paradigma diferente.
(iii) Contribuições e Fragilidades
-
Quanto às contribuições, conseguimos fazer com que todos os integrantes desenvolvessem o projeto, com na maioria dos casos conseguindo ter contribuição necessária dos integrantes, por meio da metodologia que adotamos de pair programming, em que enquanto um desenvolvia, os outros ficavam em chamada juntos ajudando a relembrar as peculiaridades da linguagem e dando melhores ideias para ajudar a construir as regras necessárias para o nosso jogo.
-
Acreditamos que o nosso projeto tenha algumas fragilidades quanto às regras do jogo Cara a Cara original, pois não conseguimos construir por meio da linguagem Prolog todas as regras desse jogo - inclusive, faltando alguns detalhes que deixamos passar despercebido, por termos deixado para desenvolver o projeto muito em cima da hora - por os integrantes deste grupo terem demorado a ter um domínio satisfatório da linguagem necessário para a realização do que propusemos.
(iV) Trabalhos Futuros.
-
Adicionar recursos visuais.
-
Modularizar o código, para aproveitar partes semelhantes do código.
-
Adicionar nome sorteado ao final do jogo mesmo que o jogador perca.
-
Adicionar mais personagens e mais características, dando assim mais dinâmica para o jogo.
- Tutorial de prolog
- Outro tutorial de prolog
- Varaiveis globais
- Listas (documentação oficial)
- Listas em Prolog
- Documentação SWI-Prolog
- Além dos vídeos disponibilizados no moodle UnB da discplina