Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jogo da Velha com Minimax e Poda Alfa-Beta #29

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

thalesfb
Copy link

Prezado(a) Professor(a),

Gostaria de submeter o trabalho completo referente ao desenvolvimento do Jogo da Velha com Minimax e Poda Alfa-Beta, conforme solicitado. O projeto inclui as funcionalidades requeridas e incorpora melhorias para aprimorar a experiência do usuário.

Descrição do Trabalho:

Implementação do Algoritmo Minimax com Poda Alfa-Beta:
O jogo utiliza o algoritmo Minimax otimizado com poda alfa-beta para a inteligência artificial do computador, permitindo que ele faça jogadas estratégicas de forma eficiente.
A poda alfa-beta reduz o número de nós avaliados pelo algoritmo Minimax, melhorando o desempenho e a velocidade de resposta do jogo.

Árvore de Decisão:
Foi implementada uma árvore de decisão que exibe as próximas possibilidades de jogadas a partir do estado atual do jogo.
As jogadas já realizadas são destacadas na árvore, facilitando o acompanhamento das decisões da IA.

Modos de Jogo:
Jogar com o Computador: O usuário pode jogar contra a inteligência artificial.
Jogar com outro Jogador: Permite que dois jogadores humanos joguem entre si no mesmo dispositivo.

Interface Responsiva e Melhorias de UX/UI:
O design foi aprimorado com um CSS responsivo, adaptando-se a diferentes tamanhos de tela.
Foram implementados destaques visuais para células vencedoras e feedback ao interagir com o tabuleiro.
Os botões foram organizados e estilizados para melhor usabilidade.

Organização do Código:
O código foi separado em arquivos distintos (index.html, styles.css e script.js) para melhor organização e manutenção.
Comentários e estruturação do código facilitam a compreensão e possíveis futuras modificações.

Principais Desafios e Soluções:

Integração do Minimax com Poda Alfa-Beta:
Implementar a poda alfa-beta no algoritmo Minimax foi um desafio para otimizar a eficiência do algoritmo.
A poda permite que o algoritmo ignore ramificações que não podem afetar a decisão final, reduzindo o tempo de processamento.

Integração entre JavaScript e CSS:
Houve a necessidade de ajustar o JavaScript para utilizar o atributo data-value nas células, conforme o novo CSS exigia para exibir os valores "X" e "O".
A função updateBoard foi modificada para definir o data-value corretamente, garantindo a exibição adequada dos símbolos no tabuleiro e nas miniaturas da árvore de decisão.

Funcionamento da Árvore de Decisão:
Ajustes foram feitos na função generateNextMoves para que a árvore de decisão refletisse corretamente as próximas jogadas possíveis, destacando também as jogadas já realizadas.
Adicionamos estilos específicos no CSS para as mini-células, garantindo consistência visual.

Como Testar o Jogo:
Abra o arquivo index.html em um navegador web compatível.
Escolha o modo de jogo desejado:
Clique em "Jogar com o Computador" para enfrentar a IA.
Clique em "Jogar com outro Jogador" para um jogo entre dois jogadores humanos.
Faça suas jogadas clicando nas células vazias do tabuleiro.
Observe a árvore de decisão à direita, que exibirá as próximas possibilidades de jogadas.
O jogo indicará quando houver um vencedor ou em caso de empate.
Utilize o botão "Reiniciar" para começar uma nova partida a qualquer momento.

Considerações Finais:

Experiência do Usuário:
Esforços foram feitos para melhorar a experiência do usuário, tanto em termos de jogabilidade quanto de interface.
A responsividade do design permite que o jogo seja acessado confortavelmente em diferentes dispositivos.

Feedback e Melhorias Futuras:
Estou aberto(a) a sugestões e feedback para aprimorar ainda mais o projeto.
Possíveis melhorias futuras incluem adicionar níveis de dificuldade e aprimorar a visualização da árvore de decisão.

Anexos:
index.html
styles.css
script.js
README.md (com instruções detalhadas e informações adicionais)
Agradeço pela oportunidade de desenvolver este trabalho e aguardo seu retorno para quaisquer esclarecimentos adicionais.

Atenciosamente,

Thales Ferreira

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant