5
respostas

Qual e o problema não aparece a mensagem acertou

5 respostas

Olá. Não está faltando { e } para o alert("Acertou!"); do seu if? Ele é obrigatório mesmo que tenha só uma cláusula dentro do if.

Não entendi Jorge Torres Coelho

Manuel, observe as chaves entre o comando alert:

if((x > xAleatorio - raio) && (x < xAleatorio + raio) && (y > yAleatorio - raio) && (y < yAleatorio + raio))

{

alert("Acertou!");

}

}

O comando if tem a seguinte estrutura:

if( <condicao> ) {
   <comando1>;
   <comando2>;
   <...>
}

Portanto, faltou o abre e fecha chaves do IF. No seu caso, só existe um comando (o <comando1>).

function dispara(evento) {

var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
alert(xAleatorio);
alert(yAleatorio);

} if ((x > xAleatorio - raio) && (x < xAleatorio + raio) && (y > yAleatorio - raio) && (y < yAleatorio + raio)) {

alert("Acertou!");

}

tela.onclick = dispara;

Agora esta a m dar erro no if

Como não estou acompanhando esta aula, você está usando algum debugador on-line para facilitar a explicação (ou ao menos o entendimento)?

Qual a mensagem de erro?

Olhando só a função dispara(), a menos que as variáveis xAleatorio, yAleatorio, raio sejam globais, vai dar erro. Exiba os valores de cada variável com os alert. Se der erro é por isso que deu pau no if.

Também você fez uma chamada à função dispara:

tela.onclick = dispara;

Mas não informou o parâmetro dela. Você definiu a função dispara como

dispara(evento)

Qual seria o valor de evento no caso?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software