1
resposta

alguém poderia me explicar essa parte do codigo

if ((x > 300 - raio) 
            && (x < 300 + raio)
                && (y > 200 - raio) 
                    && (y < 200 + raio)) {

            alert('Acertou');
        }
    }
1 resposta

300,200 são as coordenadas do centro do alvo

x e y são as coordenadas puxadas no clique do mouse

Esse if questiona se x e y estão dentro do raio ( dentro do centro do alvo)

no eixo x o centro do alvo é 300 por isso considera acerto os pontos em que a coordenada tem x entre 290 a 310, ou seja +/-10 px Imagine assim ... você pega um compasso é põe abertura dele em 10... colocando esse compasso no centro (ponto 300) onde a bolinha que vc fez acerta o eixo x? Vai passar em 290 (300-raio) e 310 (300+raio).

o mesmo acontece no eixo y, mas no eixo y o centro fica na coordenada 200..

Contudo há um erro de precisão porque essa estrutura gera uma área de acerto em forma de quadrado em redor do alvo, talvez seja essa sua dúvida. Mas para o propósito do programa tá ok

Caso vc seja perfeccionista postei recente como ser mais preciso esse programa em https://cursos.alura.com.br/forum/topico-acerta-o-alvo-aumentando-a-precisao-226851