2
respostas

[Projeto] Upgrade no código - Adicionei pontuação e máximo de tentativas

<!-- Além do que foi mostrado na aula, fiz um upgrade e adicionei pontuação e tentativas. -->

<canvas width="600" height="400"></canvas>

<h1>Pontos: <span id="pontos">0</span></h1>
<h1>Tentativas: <span id="tentativas">5</span></h1>

<script>
  let tela = document.querySelector("canvas");
  let pincel = tela.getContext("2d");

  pincel.fillStyle = "lightgray";
  pincel.fillRect(0, 0, 600, 400);

  function desenhaCirculo(x, y, raio, cor) {
    pincel.fillStyle = cor;
    pincel.beginPath();
    pincel.arc(x, y, raio, 0, 2 * Math.PI);
    pincel.fill();
  }

  function limpaTela() {
    pincel.clearRect(0, 0, 600, 400);
  }

  let raio = 10;
  let xAleatorio;
  let yAleatorio;

  function desenhaAlvo(x, y) {
    desenhaCirculo(x, y, raio + 20, "red");
    desenhaCirculo(x, y, raio + 10, "white");
    desenhaCirculo(x, y, raio, "red");
  }

  function sorteiaPosicao(maximo, minimo) {
    return Math.floor(Math.random() * (maximo - minimo) + minimo);
  }

  function atualizaTela() {
    limpaTela();
    pincel.fillStyle = "lightgray";
    pincel.fillRect(0, 0, 600, 400);
    xAleatorio = sorteiaPosicao(570, 30);
    yAleatorio = sorteiaPosicao(370, 30);
    desenhaAlvo(xAleatorio, yAleatorio);
  }

  setInterval(atualizaTela, 1000);

  let pontos = 0;
  let tentativas = 5;
  let totalPontos = document.querySelector("#pontos");
  let totalTentativas = document.querySelector("#tentativas");

  function dispara(evento) {
    let x = evento.pageX - tela.offsetLeft;
    let y = evento.pageY - tela.offsetTop;

    if (
      x > xAleatorio - raio &&
      x < xAleatorio + raio &&
      y > yAleatorio - raio &&
      y < yAleatorio + raio
    ) {
      pontos++;
      totalPontos.textContent = pontos;
      if (pontos >= 10) {
        setTimeout(function () {
          alert("Ganhou!!");
          location.reload();
        }, 100);
      }
    } else {
      tentativas--;
      totalTentativas.textContent = tentativas;
      if (tentativas <= 0) {
        setTimeout(function () {
          alert("Perdeu");
          location.reload();
        }, 100);
      }
    }
  }

  tela.onclick = dispara;
</script>
2 respostas

Olá Bárbara, tudo bem?

Parabéns por adicionar pontuação e tentativas ao seu código! É sempre bom aprimorar nossos projetos.

No seu código, você definiu que o jogador começa com 5 tentativas e ganha pontos ao acertar o alvo. Além disso, você também definiu que, ao atingir 10 pontos, o jogador ganha o jogo e, se as tentativas chegarem a 0, o jogador perde.

Gostei bastante da sua iniciativa, espero que continue com esse empenho, tenho certeza que se tornará uma ótima profissional.

Caso durante os seus estudos você tenha dúvidas ou problemas, recorra ao fórum, estaremos aqui para ajudá-la.

Abraços e bons estudos!

Olá Armano, tudo bem sim!!

Muito obrigada!!!!!!