Aula 24
Como Lidar com o Empate no Jogo da Velha (Aula de HTML, CSS, JavaScript)
Summary
## Resumo do Transcrição sobre Detecção de Empate em um Jogo
O apresentador discute a implementação de uma funcionalidade para detectar empates em um jogo, possivelmente do tipo jogo da velha. Os principais tópicos abordados incluem:
1. **Condição de Empate**:
- O empate ocorre quando todas as posições do tabuleiro estão preenchidas e não há vencedor.
- É necessário adicionar um bloco `else if` para checar a possibilidade de empate.
2. **Função para Checar Empate**:
- A função `checarPorEmpate` será criada para determinar se houve um empate.
- Utiliza-se `Object.keys` para pegar as propriedades do tabuleiro e a função `every` para percorrer essas propriedades e verificar se todas não são `null`.
3. **Lógica do Jogo**:
- Se todas as posições estão preenchidas (ou seja, não são `null`), a função retornará `true`, indicando um empate.
- Se ao menos uma posição estiver vazia (`null`), a função retornará `false`.
4. **Atualização da Mensagem**:
- Caso haja um empate, a mensagem exibida na interface do usuário deve ser alterada para "Deu velha".
5. **Controle do Fluxo do Jogo**:
- Uma variável chamada `deuEmpate` é introduzida para controlar se o jogo deve continuar ou não.
- Se o jogo já tiver um vencedor ou empatar, o fluxo do jogo deve ser encerrado.
6. **Correções e Ajustes**:
- O apresentador faz considerações sobre um erro que ocorreu e como isso afecta a detecção de empates.
- É destacado que o código deve acessar corretamente as propriedades do tabuleiro ao verificar se são `null`.
### Conclusões
- O apresentador conclui que a funcionalidade de empate foi resolvida e se despede, prometendo uma futura continuação.
Video Transcript
Olha aqui pessoal, vamos dar a fazer o empate. Então aqui quando você checar se tem posição de
vitória e não tiver nenhuma, pode ser que todos os fases estejam pré-enxidos, mas deu empate.
Então a gente adiciona aqui, esse caso aqui, um else if, tá? Else if, deu empate, se deu empate, tá?
Vamos checar por empate. Se checar por empate retornar true, significa que deu empate. Então a
gente vai fazer outra coisa. Então vamos checar por empate aqui, vamos criar essa função.
Antes de jogar function, checar por empate.
Então para checar de empate é simples porque você já sabe se o tabuleiro tiver todos os cantos,
todos os espaços pré-enxidos, nenhum desse cara fornou, nenhum, tá? Nenhum se fornou. Significa que
deu empate, porque a gente já checou vitória e não foi vitorioso, ninguém. Então é só checar as
valores dessas propriedades do tabuleiro. Para isso a gente vai usar a função every, tá? Da lista.
A gente vai pegar uma lista das propriedades do tabuleiro com o object.keys e usar o every para
checar que cada valor da propriedade correspondente tem valor que não é null, tá? Então vamos lá.
A gente vai aqui checar por empate, return, tabuleiro, vamos usar o object.keys para pegar
propriedades do tabuleiro com numa lista e falar o every e para cada posição ou espaço, sei lá,
posição, você vai ver aqui, a gente vai checar, opa, são de baixo. Eu quero retornar a posição,
eu quero que toda posição não seja igual a null. Então esse significa o quê? Ele vai percorrer essa
lista de propriedades do tabuleiro e vai checar se a posição é null. Se para todas as propriedades
da lista a posição não for null, essa condição for true, significa que todos os valores foram
percorridos, todas as passas foram preestidos, significa que deu empate. Então esse cara vai
retornar true, tá? Mas se tiver alguém que o valor seja null, que tiver vazio, esse cara vai
retornar false e o empate não vai ser, não vai ser empate, tá? Então vamos lá. Se der empate,
pegar mensagem de novo document, get element, by ID, mensagem e vai mudar essa mensagem, né?
Com essa mensagem e vou dizer mensagem, tax content, vou dizer deu empate, deu velha, né? Deu velha.
Então vamos lá aqui, a gente tem que setar uma flag também para dizer que foi empate,
não, o jogo vai ficar continuar. Então vamos deixar variável empate, empate é true, tá? Deu empate,
vamos dizer deu empate true. Então vamos fazer essa variável deu empate lá em cima, let, deu
empate, vou dizer false, primeiramente. Aí é que, não jogar, se tiver vencedor ou deu empate,
não tem mais jogo, ou deu empate, não tem mais jogo. Vamos lá, festar. Como era o empate que eu tinha
antes? Eita, deu errado já, putz. Então vamos, vamos, vamos, vamos, certar aqui, que é que deu.
Deu empate, quando eu cliquei, ele foi para jogar, não deu empate ainda, ele chegou por empate,
parece que esse cara está retornando true, já deu empate, o que a gente fez?
A posição, não, não. Vamos ver o Every que fez o negócio errado. Ah, ah, ah,
quero que todos sejam a, Every, letra, se letra, for a, verdade, mas se tiver alguém aqui no
B, mentira, não, é falso. Então, eu quero que claro a posição não seja no Every,
objecto tabuleiro. Ah, desculpa, a gente tem que acessar o tabuleiro, porque a posição é só
o ID, é claro que a posição sempre vai ser definida, esse cara nunca vai ser no,
então, na mesma hora que está dizendo empate, então, esquecemos tabuleiro a posição,
essa posição no tabuleiro para checar o valor da propriedade aqui, tá?
Então, vamos lá, tabuleiro na posição.
Opa, que, que, deu empate, deu value, dá para jogar mais não, tá? Então, é isso, resolve o negócio do empate.
O braço aulas só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: