Um aplicativo de Jogo da Velha construído em Angular, com funcionalidades de jogar contra uma inteligência artificial em 3 dificuldades diferentes ou jogar localmente com um amigo.
| Angular | |
| Typescript | |
| TailwindCSS | |
| LucideIcons |
Foi programado uma inteligência artificial para jogar contra o usuário, ela rastreia todo o tabuleiro verificando a melhor jogada a se fazer.
A seguir veja uma lista com as ações em ordem prioritária que a IA executa.
| Prioridade | Ação | Método |
|---|---|---|
| 1 | Ganhar o jogo | Rastreia o tabuleiro inteiro verificando se é possível ganhar com o próximo movimento |
| 2 | Impedir que o adversário ganhe | Rastreia o tabuleiro inteiro verificando se a próxima jogada do usúario pode resultar em uma vitória e o impede |
| 3 | Impedir estratégia de diagonais | Caso o usuário marque duas diagonais opostas a IA marca uma lateral ao centro impedindo a estratégia |
| 4 | Impedir estratégia de L | Caso por exemplo a lateral meio-esquerda e a lateral meio-baixo sejam preenchidas é preenchido a diagonal entre elas |
| 5 | Impedir estratégia de L2 | Caso por exemplo a diagonal esquerda-cima e a lateral meio-direita sejam preenchidas é preenchido a diagonal direita-baixo |
| 6 | Marcar o centro | O centro se não foi preenchido é priorizado |
| 7 | Marcar diagonais | As diagonais são priorizadas se o centro foi preenchido |
| 8 | Jogada aleatória | É marcado um espaço vazio aleatório |
Foram programados 4 modos de jogo, sendo eles:
| Modo_de_jogo | Descrição |
|---|---|
| Fácil | A IA se comporta mais desleixadamente, tendo apenas 25% de chance de realizar as ações [1, 3, 4, 5, 6, 7] e 0% de chance a ação [2] |
| Médio | A IA se comporta melhor, tendo 50% de chance de realizar as ações [1-7] |
| Impossível | A IA se comporta da melhor forma possível, ao jogar nesse modo o resultado sempre será um empate ou uma vitória por parte da IA |
| 2_Jogadores | É desativado o sistema de IA, permitindo que o usuário jogue também no turno que seria da IA (podendo assim jogar com um amigo) |
Foi implementado um placar para acompanhar a pontuação geral.
Foi desenvolvido uma interface 100% amigável e animada, bem como uma tela de vitória.
- Clone o repositório
git clone https://github.com/Delgado-tech/tic-tac-toe-with-ia.git
cd tic-tac-toe-with-ia- Instale as dependências
pnpm install- Inicie o servidor de desenvolvimento
npm run start-
Abra o navegador e vá para
http://localhost:4200. -
Após isso divirta-se!!!
Este projeto está licenciado sob a Licença MIT.
Se você tiver alguma dúvida ou sugestão, entre em contato clicando aqui.
