Um momento
Aula 16
Cursos / Jogo da Velha com HTML, CSS, e JavaScript
Debugando Problemas na Função de Checar por Vitória no Jogo da Velha

Summary

## Resumo do Teste de Função para Checar Vitória

O participante inicia um teste na função que verifica a vitória em um jogo. O objetivo é monitorar se algum jogador venceu ao checar o tabuleiro.

1. **Verificação de Vitória**: 
   - A função `checar a vitória` é chamada.
   - Se retornar `true`, um log informa que o jogador venceu.
   - Caso contrário, é exibida uma mensagem indicando que ainda não houve vencedor.

2. **Testes e Depuração**:
   - O participante retorna ao navegador para checar se a função está funcionando corretamente.
   - Mensagens de "ainda não teve vencedor" são exibidas repetidamente, indicando que a vitória não foi reconhecida.
   - O usuário começa a depurar a função `checa a vitória`, imprimindo o estado do tabuleiro e outros parâmetros para entender o que está errado.
   
3. **Impressões do Console**:
   - Logs são adicionados para diagnosticar valores de variáveis internas, como `suffix` e `jogador`.
   - Descobre-se que o loop não está retorna a condição de vitória corretamente.
  
4. **Identificação do Problema**:
   - O participante descobre que a função de vitória continua a rodar mesmo após um jogador vencer, o que significa que o loop precisa de uma condição para ser interrompido.
   - A solução envolve quebrar o loop corretamente usando técnicas adequadas para sair da execução prematuramente.

5. **Próximos Passos**:
   - O participante planeja investigar como interromper o loop `forEach` e discutir alternativas na próxima sessão.

Video Transcript

Fala pessoal, antes de continuar, eu queria só testar essa parte que a gente usou para checar a vitória das linhas. Então, volta na função jogar, você marca o tabuleiro no espaço, lá e você checa a vitória. Eu quero fazer aqui, se checar a vitória for chamada e der true, né? Significa que teve vitória, vamos dar um console log. Vitória ao jogador e vírgula jogador. Se não, eu vou dizer, ainda não teve um vencedor. Ainda não teve um vencedor. Opa, não teve. Então, vamos dar esse console log para você ver. Lá se está funcionando, não. Então, vamos voltar ao navegador. Ainda não tinha. Então, cliquei aqui. Ainda não teve vencedor. Olha aqui. Ainda não teve vencedor. Ainda não teve vencedor. Ainda não teve vencedor. Será que funcionou? Ainda não funcionou. Vamos dar um debugar aqui para ver se o que está errado. Vamos lá para checar a vitória aqui e ver o que está acontecendo. Eu vou imprimir primeiramente o tabuleiro. Console log, tabuleiro. Checa a vitória, tabuleiro. E aqui, antes do return false, vou dizer checa a vitória, return false. E nesse loop aqui, vou dar o console log. A suffix, vou dizer qual suffix. Suffix. Vou dar o console log do jogador. Provavelmente, qual jogador. Tabuleiro esquerda. E eu quero ver também o valor de cada um desses caras aqui. Então, vou dar o console log dessa maneira aqui. Chegar esse. Vou dar um string para ver o valor. Fazer a mesma coisa com os outros. Opa, está errado isso. Não tem errado, não. Deixa eu ver tabuleiros, que eu supexo. Ok, tabuleiros, que eu supexo. Tabuleiros dentro do suffix, eu botei duas coisas aqui. Ok, esse é o debugando aqui. Vamos ver. Console log ainda é finido. Opa, aconteceu. Algo errado aqui. Vamos ver aqui. Qual é a linha? 36. 36. Console.log. Suffix. Console.log.Jogador. Hum. Vida o que é errado, vamos. Pronto, sai. Vamos aqui. Clica aqui. Vamos ver os consoles. Vou dar o tabuleiro aqui, inicialmente. Depois, checa a vitória, esquerda acima está a X. Suffix.acima. Jogador X. Então, eu cheguei o X aqui, olha aqui. Está certo. E torno false. Tabuleiro X, X. X. O que é errado? O que é errado? O que é errado? O que é errado? O que é errado? O que é errado? X. Esqueira acima. Esqueira acima, centro acima, está certo. E aí, chegamos ao marque, lá em cima. Para ver o que aconteceu. Então, agora temos queira acima, direita acima, centro acima, com X. Ele veio aqui. Suffix.acima, jogador X. Tabuleiro X, X e X. Então, deveria ser o... dar um console logo aqui. Venceu. Venceu. Vamos ver aqui, de novo. Errei ali. Venceu, apareceu. Mas ele continuou rodando o loop. Então, o problema é quebrar desse loop do for each. Então, na verdade, está retornando da onde? Do for each. Então, como é que quebra desse loop? Como é que só é desse loop? Então, vamos ver aqui, no próximo alvo.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: