Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Uso de for

Olá, meu código funciona e depois eu vi a solução usando apenas if. Como sou iniciante, tem problema eu ter implementado um código tão longo? Em um programa real, isso afetaria o desempenho do site/app ?

Outra dúvida, a indentação está ok? ou preciso melhorar mais?

Obrigado.

<meta charset="UTF-8">
<canvas width="600" height="400"></canvas>

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

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

    var raio = 10;

    function desenhaCirculo(x, y, raio, cor) {

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

    desenhaCirculo(300, 200, raio + 20, 'red');
    desenhaCirculo(300, 200, raio + 10, 'white');
    desenhaCirculo(300, 200, raio, 'red');

    function dispara(evento) {

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;
        var acertoX = false;
        var acertoY = false;

        for(var i = 290; i < 311; i++) {
            if(i == x) {
                acertoX = true;
            }
        }

        for(var i = 190; i < 211; i++) {
            if(i == y) {
                acertoY = true;
            }
        }

        if((acertoX && acertoY) != false) {

            alert("Você acertou!");
        } else {

            alert("Você errou!");
        }
    }

    tela.onclick = dispara;

</script>
2 respostas
solução!

Bom dia!

Vou responder de baixo para cima:

Outra dúvida, a indentação está ok? ou preciso melhorar mais?

Se trabalhassemos juntos, eu não teria problema nenhum em dar manutenção em um código assim. Está limpo, claro e organizado. Show! Tente sempre seguir assim.

Como sou iniciante, tem problema eu ter implementado um código tão longo?

Não tem problema. Entenda bem os conceitos do que você está estudando hoje. Agora não é o momento de se preocupar com isso. Ao ir avançando nos cursos, você irá aprender mais técnicas que irão aperfeiçoando o seu código.

Em um programa real, isso afetaria o desempenho do site/app ?

Seu programa é real. Ele funciona e traz resultado quando executado. Com relação à desempenho, quanto mais linhas, mais código, mais tempo para processar. Mas aqui estamos falando em milissegundos, ok? Nada absurdo. Quanto menos verboso o código, melhor. Com o aperfeiçoamento de algumas coisas, irá processar mais rapidamente seu código.

Bons estudos!

Olá Thiago, tudo bem?

Muito obrigado pela resposta. As vezes me sinto pressionado por fazer um código simples de um jeito mais verboso.

Obrigado pelos esclarecimentos!! Boa noite