Jogo da memória
Em jogos de cartas ou aplicativos que envolvem pares, você precisa controlar quais itens já foram combinados para não permitir que o jogador selecione a mesma carta duas vezes. Usar um ArrayList para armazenar os valores e um segundo ArrayList de booleanos para marcar os pares encontrados é uma forma prática de gerenciar o estado do jogo. Dominar essa técnica ajuda a construir interfaces que reagem corretamente às ações do usuário.
O PROBLEMA
ArrayList embaralhado. 4 pares. Jogo para encontrar pares.
EXEMPLO
Par de 7 encontrado!
SOBRE O CONCEITO
O exercício usa um ArrayList de Integer para guardar os números embaralhados e outro ArrayList de boolean para rastrear quais posições já foram acertadas. O erro comum de 'revelar posição já encontrada' acontece quando o código não verifica o estado da posição antes de exibi-la: se um par foi encontrado, a posição deve ficar invisível ou ser pulada. Para evitar isso, dentro do laço while que gerencia as rodadas, você deve checar se encontrados.get(posicao) é false antes de permitir a seleção. Como arrays tradicionais ([]) são proibidos, o ArrayList é a estrutura adequada, e Collections.shuffle embaralha a lista. O jogo continua com while até que todos os pares sejam encontrados, usando for para exibir o tabuleiro e if para comparar cartas.
RESOLUÇÃO