Jogo da senha
Jogos de adivinhação com feedback posicional são a base de lógicas usadas em sistemas de confirmação de senhas e autenticação em dois fatores. Esse padrão ensina a comparar strings caractere por caractere, algo essencial em validação de formulários e verificações de integridade de dados. Dominar a análise de posições evita erros comuns ao implementar funcionalidades como 'senha incorreta' com dicas.
O PROBLEMA
Gere uma senha de 4 dígitos aleatória. O usuário tem 10 tentativas. Informe dígitos corretos na posição certa e existentes na posição errada.
EXEMPLO
Senha: 4821 Tentativa: 1234 → 1 na posição certa, 2 no lugar errado
SOBRE O CONCEITO
O exercício exige percorrer a senha gerada (senha) e a tentativa do usuário (tentativa) usando um laço while com índice. Para cada posição, verifique se o dígito é igual: se sim, incrementa certos; senão, veja se o dígito da tentativa aparece em outra posição da senha com in – mas cuidado: in verifica existência, não posição. Erro comum é contar um dígito que já foi contado como certo na mesma posição (ex.: senha 1234, tentativa 1111 – deve contar 1 certo e 0 existentes, não 4 existentes). Para evitar, você pode marcar dígitos já verificados, mas como listas são proibidas, uma alternativa é usar str.replace() com contagem ou lógica com cópia da senha. O limite de tentativas é controlado por um contador no while, que para após 10 iterações.
RESOLUÇÃO