Skip to content

costadev00/jogo-da-velhAI

Repository files navigation

jogo-da-velhAI

Jogo da Velha com Algoritmo Minimax

Este projeto implementa o clássico jogo da velha (Tic-Tac-Toe) com uma inteligência artificial que utiliza o algoritmo Minimax para tomar decisões. O jogo é jogado no terminal entre um jogador humano e o computador.

Funcionamento

O objetivo do jogo da velha é alinhar três de suas peças em uma linha horizontal, vertical ou diagonal antes do oponente. No jogo implementado, você pode escolher ser "X" ou "O", e o computador assumirá a outra escolha.

Aqui estão os principais recursos e detalhes de funcionamento do projeto:

  • O jogador humano pode escolher ser "X" ou "O".
  • O computador assume a escolha restante.
  • O jogador humano decide se deseja começar primeiro ou não.
  • O algoritmo Minimax é usado pelo computador para tomar decisões de jogadas.
  • O jogo é renderizado no terminal, e o jogador humano faz suas jogadas usando o teclado numérico (1 a 9).
  • O jogo verifica vitórias, derrotas e empates, exibindo mensagens apropriadas.
  • O jogador pode optar por jogar novamente após o término de uma partida.

Como Jogar

  1. Clone o repositório para sua máquina local.
  2. Execute o arquivo MinMaxVelha.py, utilizando: python3 MinMaxVelha.py
  3. Escolha ser "X" ou "O" como jogador humano.
  4. Escolha se deseja começar primeiro ou não.
  5. Use o teclado numérico para fazer suas jogadas (1 a 9) durante o jogo
  6. Após o término da partida, você pode optar por jogar novamente.

Implementação do Algoritmo Minimax

O algoritmo Minimax é utilizado pelo computador para tomar decisões sobre as jogadas. Ele funciona da seguinte forma:

  • O algoritmo explora todas as possíveis jogadas do jogador humano e do computador, construindo uma árvore de decisão.
  • Ele avalia o estado de cada nó da árvore com base em uma função de avaliação.
  • O computador escolhe a jogada que maximiza seu valor, enquanto o jogador humano escolhe a jogada que minimiza o valor.
  • A Poda Alpha-Beta é implementada para otimizar a busca, eliminando ramos que não afetarão a escolha final.

Segue abaixo o funcionamento do algoritmo minmax

Resumo

Basicamente ela explora todas as possibilidades de jogadas(na sua respectiva vez de jogar), e vê a melhor posição. Para tornar o algoritmo mais eficiente foi utilizado o conceito de poda na busca(pruning the search on backtracking). O algoritmo é de busca competitiva, isso em IA significa que em jogos mais comuns são aqueles de ambientes determinísticos, completamente observáveis em que existem dois agentes cujas ações se alternam e os valores de utilidade são iguais e simétricos. Por exemplo, se um jogador ganha, recebe +1, o outro que perde recebe -1.

Com o algoritmo MinMaxAlfaBeta usamos a busca em que a cada turno um jogador faz sua ação(min ou max) sendo max tentando o maior valor possível para o grau da árvore, e min tentando o menor possível.

Dessa forma criamos um jogador "mestre" do qual NÃO É POSSÍVEL VENCER, pois para um jogo pequeno como jogo da velha, ele sempre irá pegar a posição mais favorável no tabuleiro. Logo o melhor resultado que o adversário da IA irá conseguir é o empate

Não esqueça se gostar de deixar uma estrela no repositório!


About

Inteligência Artificial criada para jogar o "jogo da velha". Foi implementado o algoritmo de busca competitiva - MinMaxAlfaBeta. O objetivo desse projeto é didático com o intuito de apresentacao aos alunos da FACOM em Introducao à Aprendizado de Máquina. Esse projeto foi premiâdo como melhor software da FACOM-UFU feito por alunos.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages