Jogo da Velha contra uma IA #️⃣
Link para testar Você já se perguntou como sempre ganhar no jogo da velha? Na internet há muitas dicas, mas sempre gosto da dica de começar pelos cantos. Andando em vários repositório encontrei um que falava sobre o jogo da velha e que implementava um algorítimo de Minimax. Ainda não o conhecia, mas basicamente é, calcular os próximos movimentos e descobrir qual é o caminho mais simples para vencer ou perder.
Na imagem dá para criar um caminho inverso e seguir até a jogada vencedora, mas a implementação do algorítimo nos prove mais do que somente isso, nos mostra casos onde sempre irá perder e assim podemos evitalos.
O reposítório que conheci fica no perfil do 4kauanmota e se chama ticTacTo
No repositório há o README.md com duas citações, uma de um vídeo completo do algorítimo e outra com um implementação do jogo da velha no javascript. O 4kauanmota uniu os dois casos e surgiu um resultado sensacional que observei a evolução pelo bohr.io no discord. Alguns dias atrás testei e vi que o algorítimo não tinha sido implementado, hoje quando vi que podia jogar contra a "máquina" e tentei, porém só me frustei, ganhei bem poucas vezes. Desafio você a ganhar
Uau, Evandro, eu não sabia que tinha tanta opção de algoritmos diferentes pra se divertir com o jogo da velha!
Vou aproveitar o ensejo e deixar duas outras referências que eu acho super legais:
-
O Steve Mould fez um vídeo em que ele joga o jogo da velha contra portas lógicas implementadas em DNA. Ele explica certinho os circuitos lógicos (usando as portas NOT, AND e OR) e como ele faz pra escolher o próximo movimento.
-
A outra é um mapa dos movimentos ótimos pro jogo que o xkcd elaborou faz alguns anos já. Ele mostra uma opção de caminhos a partir de uma certa configuração do tabuleiro (vc vai notar que todos os quadrados no topo esquerdo são X, então o mapa não cobre tooooodas as possibilidades de jogo - mas ainda assim é legal saber que ele existe).
Greetings, professor Falken.
Sem querer ser o estraga-prazeres (e nem dar uma convencido), mas... talvez por eu já ter visto muitas implementações disso no passado, não me impressionei tanto assim.
Até porque jogo-da-velha é um jogo "resolvido", no sentido de que todas as possibilidades já estão mapeadas (e nem são tantas, ainda mais para um computador), e a "estratégia ideal" é bem conhecida.
Porém, vale lembrar que mesmo se usar esta "estratégia ideal", não há garantia de vitória, somente a garantia de não-derrota (ou seja, vc pode ganhar ou empatar - e se ambos usarem a estratégia ideal, irão sempre empatar).
E na verdade nem precisa testar todas as possibilidades, se vc pensar que o tabuleiro é "espelhado" (ou seja, começar do canto superior esquerdo é o mesmo que começar do inferior direito, um é apenas a versão espelhada do outro). Mas nem precisaria dessa otimização, já que o total de possibilidades nem é tão grande assim...
gosto da dica de começar pelos cantos
Curioso que o que eu aprendi é diferente: sempre começar pelo meio. Mas enfim, pelos cantos também dá...