3
respuestas

Duda

buen dia.

No comprendo bien el último if , quiero saber como toma la superfie porque x es mayor y menor aveces mejor explicado.

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

            alert("Tiro Certero");
3 respuestas

El blanco es un circulo de diámetro=2radio, que en este caso lo están tomando como un cuadrado de lado diámetro.

  • el centro de ese cuadrado (xAleatorio, yAleatorio) entonces
  • entonce para determinar si se acierta se requiere comparar
  • cuando se hace clic se generan las coordenadas de ese clic en (x, y)
if ((x < xAleatorio + radio) &&
        (x > xAleatorio - radio) &&
        (y < yAleatorio + radio) &&
        (y > yAleatorio - radio)) { }

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

  • Se acierta cundo se esta en esos limites
  • xAleatorio-radio< x <xAleatorio+radio
  • yAleatorio-radio< y <yAleatorio+radio

Si esto responde tu inquietud dale Solución

Si no entendí mal, en el gráfico que dejó José se calcula un área cuadrada que tiene su centro en la coordenada xAleatorio e yAleatorio... y mi respuesta a tu pregunta del If es que las 4 condicionales del If (&&) delimitan el cuadrado en donde se ubica el círculo rojo, mientras que X e Y represantan las coordenadas de los clicks que vos vas dando. Es dificil de explicar, lo que hice con mi compañera fue verlo graficado en el archivo html, en el código setInterval(actualizarPantalla,10000);, lo retrasé bastante para darle click fuera del círculo rojo pero dentro del "cuadrado".

Maira para que esté en el círculo se debe cumplir:

if ((Math.pow(x - xAleatorio, 2) + Math.pow(y - yAleatorio, 2)) < Math.pow(radio, 2)) { }

Esto viene de la ecuación de una circunferencia.