Este jogo da memória é um projeto feito com HTML, CSS e JavaScript.
Usei como tema um dos jogos que mais gosto que é o Persona 5.
- Para fazer os pares das cartas usei ilustrações dos personagens e da logo que representa o grupo dos personagens principais (Phantom Thieves).
- Fiz o jogo com pares diferentes (exceto para a ilustração da logo), sendo uma carta o personagem na versão do seu dia a dia e o par da carta é esse mesmo personagem, mas na sua versão de quando está no metaverso (para quem não conhece o Persona 5 deve ser um pouco mais difícil finalizar o jogo da memória).
- A parte de trás das cartas usei a imagem do ícone do app que leva os personagens para o metaverso.
- A imagem de plano de fundo da página também é uma ilustração usada no Persona 5.
No HTML adicionei:
- As imagens usadas para fazer as cartas.
- Os elementos para marcar o tempo e o número de cliques até finalizar o jogo.
- Um elemento para adicionar uma mensagem ao fim do jogo.
- A frase Let us start the game que aparece no jogo do Persona 5 (achei que ficaria legal na página) e adicionei um botão na palavra start para começar a marcar o tempo.
No CSS fiz toda a estilização da página.
- Usei flexbox para posicionar e alinhar os elementos.
- Usei pseudoclasse na palavra start para indicar que é um botão.
- Transform e Transition para os efeitos ao clicar nas cartas e para a mensagem de vitória ao fim do jogo.
- A propriedade
backface-visibilitypara não deixar visível a imagem espelhada ao rotacioná-la 180°.
No javaScript adicionei:
- Uma função autoinvocável para mudar a posição das cartas usando
Math.Randome CSS para aplicar a ordenação. Event Listenerpara chamar as funções:startGameque é chamada ao clicar na palavra start para começar a contar o tempo.flipCardque é chamada ao clicar nas cartas.- Chama a função
startGamecaso não tenha clicado na palavra start. - Nessa função é adicionado a contagem de cliques.
- Não permite que mais duas cartas estejam viradas ao mesmo tempo.
- Chama a função que verifica se as cartas são iguais.
- Quando o jogo termina adiciona a mesagem de vitória, que mostra em quanto tempo e com quantos cliques levou para finalizar o jogo.
- Chama a função
- A verificação se o par de cartas são iguais, que é feita comparando o nome dado as imagens no HTML. Se forem iguais elas recebem uma classe chamada
.flippede oEvent Listeneré removido delas. Caso não sejam iguais as cartas são desviradas para ficarem ocultas novemente.
Para o projeto usei como guia:
- O desafio de projeto "Desenvolvendo um jogo da memória" da plataforma DIO, apresentado pela Gabriela Pinheiro.
- O tutorial do site "How to create a memory game in JavaScript".
- O site W3schools.
Todas as imagens foram retiradas da internet.