Olá, Henrique.
Tudo bem?
Para isso você pode utilizar a propriedade innerHTML
para colocar um elemento HTML na tela através do JavaScript, no caso a tag <img>
. Primeiro cria uma tag <div>
vazia no seu arquivo HTML com um Id pode ser id="imagem-interacao"
, é dentro dessa <div>
que vai aprecer a tag <img>
com a imagem, algo como:
<div id="imagem-interacao" alt="Uma pessoa olhando para a esquerda" class="container__imagem-pessoa">
</div>
Agora, no Javasccript você faz todo o resto, pega essa <div>
com o getElementById
através do Id imagem-interacao
criado, faça isso no início do arquivo JavaScript pois não pode ficar dentro de função, para ser acessado de qualquer lugar:
var containerImg = document.getElementById('imagem-interacao');
Agora é só passar essa variável criando a tag através do innerHTML
:
containerImg.innerHTML = '<img id="minhaImagem" src="./img/bg.png" alt="Imagem" />';
Passe uma para o if de "Acertou" e a outra para o else.
Código JavaScript completo com as alterações:
let listaDeNumerosSorteados = [];
let numeroLimite = 10;
let numeroSecreto = gerarNumeroAleatorio();
let tentativas = 1;
var containerImg = document.getElementById('imagem-interacao');
function exibirTextoNaTela(tag, texto) {
let campo = document.querySelector(tag);
campo.innerHTML = texto;
responsiveVoice.speak(texto, 'Brazilian Portuguese Female', {rate:1.2});
}
function exibirMensagemInicial() {
exibirTextoNaTela('h1', 'Jogo do número secreto');
exibirTextoNaTela('p', 'Escolha um número entre 1 e 10');
}
exibirMensagemInicial();
function verificarChute() {
let chute = document.querySelector('input').value;
if (chute == numeroSecreto) {
exibirTextoNaTela('h1', 'Acertou!');
let palavraTentativa = tentativas > 1 ? 'tentativas' : 'tentativa';
let mensagemTentativas = `Você descobriu o número secreto com ${tentativas} ${palavraTentativa}!`;
exibirTextoNaTela('p', mensagemTentativas);
containerImg.innerHTML = '<img id="minhaImagem" src="./img/bg.png" alt="Imagem" />';
document.getElementById('reiniciar').removeAttribute('disabled');
} else {
containerImg.innerHTML = '<img id="minhaImagem" src="./img/ia.png" alt="Imagem" />';
if (chute > numeroSecreto) {
exibirTextoNaTela('p', 'O número secreto é menor');
} else {
exibirTextoNaTela('p', 'O número secreto é maior');
}
tentativas++;
limparCampo();
}
}
function gerarNumeroAleatorio() {
let numeroEscolhido = parseInt(Math.random() * numeroLimite + 1);
let quantidadeDeElementosNaLista = listaDeNumerosSorteados.length;
if (quantidadeDeElementosNaLista == numeroLimite) {
listaDeNumerosSorteados = [];
}
if (listaDeNumerosSorteados.includes(numeroEscolhido)) {
return gerarNumeroAleatorio();
} else {
listaDeNumerosSorteados.push(numeroEscolhido);
console.log(listaDeNumerosSorteados)
return numeroEscolhido;
}
}
function limparCampo() {
chute = document.querySelector('input');
chute.value = '';
}
function reiniciarJogo() {
numeroSecreto = gerarNumeroAleatorio();
limparCampo();
tentativas = 1;
exibirMensagemInicial();
document.getElementById('reiniciar').setAttribute('disabled', true)
}
Vou deixar o HTML completo com as alterações em outra resposta, pois não coube nessa:
Espero ter ajudado. Qualquer dúvida manda aqui. Valeu.