Como será utilizada interface de texto, ao invés de cores serão usados números (de 1 a 6) para compor a senha de quatro dígitos.
A senha deve ser gerada aleatoriamente pelo programa.
A senha deve ser armazenada num vetor de quatro posições e um outro vetor similar deve ser usado para receber as tentativas do jogador desafiado.
A cada tentativa, o programa deve informar a quantidade de números corretos em posição correta e a quantidade de números corretos (ou seja que fazem parte da senha) em posição equivocada.

Passo 1

Beleza, então o que a gente precisa fazer aqui é criar um programa que gera uma senha aleatória composta por quatro números, cada um variando de 1 a 6. A senha vai ser guardada num vetor (que é tipo uma lista) com quatro posições. Depois, o jogador vai tentar adivinhar essa senha, e a cada tentativa, o programa vai dizer quantos números estão certinhos na posição certa e quantos são números certos, mas na posição errada. Para resolver isso, vamos precisar saber como trabalhar com vetores, gerar números aleatórios e comparar elementos de vetores.

Passo 2

Primeiro, vamos gerar a senha aleatória. Para fazer isso, a gente vai usar uma função que gera números aleatórios entre 1 e 6. Em muitas linguagens de programação, tem funções prontas para isso. A gente vai criar um vetor com quatro posições e preencher cada posição com um número aleatório gerado.
Por exemplo, em pseudocódigo:
senha = vetor[4]
para i de 0 até 3:
    senha[i] = número aleatório entre 1 e 6

Passo 3

Agora que temos a senha gerada e armazenada no vetor senha, precisamos preparar um outro vetor para guardar a tentativa do jogador. Esse vetor também vai ter quatro posições. Em cada rodada, o jogador vai entrar com quatro números, e vamos colocar esses números nesse vetor.
Pseudocódigo:
tentativa = vetor[4]
leia os 4 números do jogador e armazene em tentativa[0] a tentativa[3]

Passo 4

Com a tentativa do jogador registrada, vamos comparar essa tentativa com a senha para descobrir quantos números estão certinhos na posição certa e quantos estão na posição errada, mas presentes na senha.
Para isso, vamos:
  1. Contar os números na posição correta: comparar cada número da tentativa com o número correspondente na senha.
  2. Contar os números certos na posição errada: verificar se os números da tentativa existem na senha, mas sem contar os que já estão na posição correta.
Pseudocódigo:
corretos_posicao = 0
corretos_numero = 0
senha_temporaria = copia de senha
tentativa_temporaria = copia de tentativa

// Primeiro, contar os corretos na posição certa
para i de 0 até 3:
    se tentativa_temporaria[i] == senha_temporaria[i]:
        corretos_posicao += 1
        senha_temporaria[i] = 0 // marca como verificado
        tentativa_temporaria[i] = -1 // marca como verificado

// Depois, contar os corretos na posição errada
para i de 0 até 3:
    se tentativa_temporaria[i] != -1:
        para j de 0 até 3:
            se tentativa_temporaria[i] == senha_temporaria[j]:
                corretos_numero += 1
                senha_temporaria[j] = 0 // marca como verificado
                pare o loop interno

Passo 5

Depois de contar quantos números estão certos na posição certa e quantos estão certos na posição errada, a gente vai informar esses valores para o jogador. Isso ajuda ele a entender se está perto de acertar a senha ou se precisa tentar outras combinações.
Pseudocódigo:
imprima "Corretos na posição certa: " + corretos_posicao
imprima "Corretos na posição errada: " + corretos_numero
O processo se repete até que o jogador acerte todos os números na posição certa.

Resposta

Seguindo esses passos, você consegue criar um programa que gera uma senha aleatória de quatro números entre 1 e 6, permite que o jogador tente adivinhar essa senha e fornece feedback sobre cada tentativa, indicando quantos números estão corretos na posição certa e quantos estão corretos mas na posição errada. Assim, o jogador pode ir ajustando suas tentativas até descobrir a senha correta.

Exercícios relacionados