sinceramente o maior desafio do programador é ele mesmo kkk só nesse código tive alguns erros bobos que passam despercebidos kkk
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Game alvo</title>
</head>
<body>
<canvas width="600" height="400"></canvas>
<script>
var canvas = document.querySelector('canvas');
var context = canvas.getContext('2d');
var xAleatorio;
var yAleatorio;
var raio = 10;
context.fillStyle = 'lightgray';
context.fillRect(0, 0, 600, 400);
function desenhaCirculo(x, y, raio, cor) {
context.fillStyle = cor;
context.beginPath();
context.arc(x, y, raio, 0, 2 * Math.PI);
context.fill();
}
function limpaCanvas() {
context.clearRect(0, 0, 600, 400);
context.fillStyle = 'lightgray';
context.fillRect(0, 0, 600, 400);
}
function desenhaAlvo(x, y) {
desenhaCirculo(x, y, raio + 20, 'red');
desenhaCirculo(x, y, raio + 10, 'white');
desenhaCirculo(x, y, raio, 'red');
}
function posicaoAleatoria(inicial, final) {
return Math.floor(Math.random() * (final - inicial) + inicial);
}
function atualizarCanvas() {
limpaCanvas();
xAleatorio = posicaoAleatoria(0, 600);
yAleatorio = posicaoAleatoria(0, 400);
desenhaAlvo(xAleatorio, yAleatorio)
}
function dispara(evento) {
var x = evento.pageX - canvas.offsetLeft;
var y = evento.pageY - canvas.offsetTop;
if ((x > xAleatorio - raio)
&& (x < xAleatorio + raio)
&& (y > yAleatorio - raio)
&& (y < yAleatorio + raio)) {
alert('acertou')
}
}
canvas.addEventListener('click', dispara)
setInterval(atualizarCanvas, 500);
</script>
</body>
</html>