Aula 23
Highlight da Vitória, Testando e Ajeitando Bugs no Jogo da Velha (em HTML, CSS, JS)
Summary
Resumo do Transcript
Neste trecho, o autor discute a implementação de um sistema para verificar a vitória em um jogo de tabuleiro, possivelmente da velha.
Estrutura de Verificação da Vitória
-
Mudança de Adição para Find: O autor sugere alterar a adição atual para uma função que utiliza
find
para identificar o "sufixo vencedor". -
Sufixo Vencedor:
- Se uma linha for vencedora (exemplo: a linha de cima), ela retorna o "sufixo vencedor".
- Se houver um "sufixo vencedor", ele montará uma lista das posições (esquerda, centro, direita), para aplicar as modificações visuais no tabuleiro.
-
Alteração do Código:
- Modifica a lógica para tornar o código mais limpo e organizado.
- Introduz a ideia de prefixos para verificar vitórias verticais.
-
Lógica Diagonal:
- Discutem-se as condições para verificar a vitória nas diagonais.
-
Alteração de Estilo:
- O autor menciona como mudar a cor de fundo dos elementos HTML do tabuleiro de acordo com as posições vitoriosas.
-
Verificação de Erros:
- Apresenta alguns bugs encontrados durante os testes e as correções implementadas no código.
-
Adição da Funcionalidade de Empate:
- O autor reconhece que a lógica atual não lida com empates e sugere que essa implementação ficará para uma próxima aula.
Considerações Finais
O autor também menciona ajustes visuais, como a cor de fundo e a cor da fonte, e admite que algumas partes do código podem ser melhoradas. A aula termina com a promessa de abordar a lógica de empates em uma futura sessão.
Video Transcript
Então, mudar a adição para Find e quando ele retornar True retornar o Sufix o vencedor, tá?
Sufix o vencedor.
Eu vou mudar esse vero e vencer para a posição, tá certo? Vou botar no.
Sufix o vencedor será, por exemplo, se for a primeira linha, ele vai no acima, retornar True e retornar esse cara acima como sufix o vencedor.
Eu vou pegar o sufix o vencedor e retornar aqui, pera aí.
Se não tiver nada, retornará de FINE. Então, se tiver sufix o vencedor e retornar uma lista,
dentro dessa lista vai ter esses caras aqui, tabuleiro.
O esquerda com sufix o vencedor e o outro vai ser o centro.
O sufix o vencedor e o outro vai ser o direita com sufix o vencedor.
Então, o que é isso? Olha aqui.
Se o acima, primeira linha for o que venceu, ele vai pegar esse fixo acima, a gente vai, se tiver o sufix, ele vai retornar uma lista com os valores.
Ah, está errado, desculpa, tem que ser o sufix, eu não me importo tabuleiro aqui.
Eu só quero usar ideias dos espaços para poder mudar a cor de fundo, selecionar os elementos e mudar a cor de fundo.
Então, eu vou retornar a esquerda com sufix acima, centro acima e direita acima.
Eu sei que essa maneira é um pouco ruim aqui, você pode mudar essa lógica para repatorizar, para deixar melhor o código, como exercício.
Então, você vai retornar esses três caras.
Agora, se for na vertical, fazer aquela mesma maneira, muda para find.
Vou dizer prefix o vencedor, pode ser de esquerda, centro ou direita e se tiver o prefix o vencedor,
e eu vou enviar uma lista de volta com prefix o vencedor acima, por exemplo, esquerda ou centro, por exemplo, centro acima,
aí centro, não é no precedente de nada aqui.
E, finalmente, prefix o vencedor terpola abaixo.
No caso da diagonal, se fosse assim, na primeira diagonal, retornar a lista com o sufix que tinha ali.
Esse aqui, o centro e direita abaixo.
Eu quero usar ideias para poder selecionar o elemento html e mudar a cor de fundo.
Faz a mesma coisa aqui, pode pausar o vídeo e fazer para o si próprio.
E aí, deu certo? Vamos lá. Listo, retorno, acedei direita acima, centro e esquerda abaixo para a antidiagonal.
E, no final, se nada der certo, retorna no...
A gente nem precisou usar posições, na verdade.
Nesse caso aqui, eu nem precisava das posições, essa variável, então vou comentar.
Agora, vai ter que mudar o jogar aqui.
Quando você checa a vitória, tem que pôr esse cara na variável.
Vou dizer const, posições e vitória.
Checa a vitória. Se tiver posições de vitória, é a lista, com aqueles três espaços que foram vitoriosos, a gente tem que fazer o seguinte.
A gente vai aqui, depois de setar a mensagem, e vou pegar documento.
Para cada posição, vou fazer um loop, posições e vitória, for each.
Cada posição, vou fazer um loop para cada um, por exemplo, a primeira seria, se fosse na primeira linha, seria esquerda acima.
Depois, esquerda acima, depois seria centro acima, depois seria direita acima.
Então, esquerda acima seria posição, primeiramente.
Você vai document, get element, por id, com id é a posição, põe na variável, espaço.
Eu vou falar espaço.style, ponto background, color, codifundo.
Posso exerver de alguma coisa assim, sei lá.
Vou botar 0, 0. Vamos usar 8, 8, 0, 0, vamos ver o que dá.
Vamos ver aqui.
Tá bom? É assim.
O que aconteceu?
A gente, pos... checa a vitória, retorna a lista.
Ou não, nessa lista tem 3 id's dos espaços.
Se estiver vitorioso, você vai para cada id, seleciona, pega aquele elemento de HTML,
muda o estilo, ponto background, color e põe essa cor.
Eita, aí não funcionou.
O que aconteceu?
Tá errado ali, né?
Esse tá certo.
Mas aqui ele não funcionou do meio.
O que será que deu errado?
Vamos aqui.
Esse é o esquerdo, centro e direito.
Vou voltar aqui nas posições.
A... é na horizontal.
Esse aqui.
Nesse caso seria o...
Esse cara aqui.
O sufixo vazio, esquerda, centro e direita, retorna true.
Ele retorna o vazio, o sufixo vencedor seria...
Ah!
Tá bom, o problema é porque a string vazia.
É um valor falso.
Falso, né?
Vai dar falso aqui, ele não vai retornar nada.
Tá? Seria esse problema aqui.
Então, por causa disso, vamos mudar esse cara.
Para se o sufixo vencedor tá não for undefined, tá bom?
Undefined, não for undefined.
Vamos lá.
Tá bom, então deu certo?
Vamos ver aqui no meio.
Tá bom?
Certo, legal.
Poderia até mudar a cor de fonte para mudar aquela cor do bola ou do X.
Seria legal, deixa eu ver aqui.
Vou dar...
Voltando aqui a mens...
O espaço, ponto style, ponto color.
Vamos dar um pouco vermelho, nada.
440000.
Legal aí.
Até um pouco mais vermelho, seria legal.
FF.
Ah!
Opa!
Spassa, não!
O que aconteceu aqui?
Esse cara seria o...
Vários bugs que a gente acha, né, quando testa.
Seria o...
Direita abaixo.
Vencendo na diagonal.
Eita, o que aconteceu?
Vamos lá ver na diagonal, primeira.
Ah, esqueci.
Do A, né?
A abaixo.
Oh!
Aí.
Se os outros não estão errados.
Vamos testar de novo.
Está aí.
Sem problema, tá?
Esse vermelho está muito...
Olha esse lance aqui.
Dá um espesso,
muda a cor aqui, se você quiser.
Escolha a sua cor.
Sei lá.
O branco é legal.
Então vou botar branco mesmo.
Se eu volto aqui, ponho branco.
O branco.
Zero, zero, zero, zero.
Ah!
Está aí.
Ah, mas não mudou, pô.
Acou.
Será que deu reload?
Por que não mudou?
Ah, desculpa.
O branco é FF, FF, FF.
Zero é zero, zero é preto.
Desculpa.
E...
Está aí, legal.
E não dá mais tempo de clicar ou nada.
Agora, um lance que a gente não fez foi o empate, né?
A gente vai fazer na próxima aula.
Por exemplo, vamos ver aqui.
Aqui, aqui.
Aqui.
Aqui.
Aqui.
Aqui.
Não posso ir ali.
Fiquei aqui.
Aqui.
E aqui.
A gente não tem um empate.
Então vamos fazer isso na próxima aula, tá?
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: