Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

10
respostas

Quantidade de quadrados

Gostaria de saber como faço para limitar a quantidade de quadrados a serem feitos, essa quantidade deve ser informada pelo usuario.

<canvas id="tela" width="1250" height="920"></canvas>
<meta charset="utf-8">

<html>

    <head>
            <title> Quadrado </title>
        </head>

    <body>



    </body>    


    <script>





    var qntQuadrado = parseInt(prompt("Quantos quadrados você quer fazer?"));

    var cor = prompt("Que cor você gostaria de pintar os Quadrado?");

    var altura = parseInt(prompt("Informe a altura dos Quadrado"));

    var largura = parseInt(prompt("Informe a largura dos Quadrado"));


    var fazQuadrado = function(qntQuadrado,x,y){
        var tela = document.getElementById("tela");

        var c = tela.getContext("2d");

        c.fillStyle = cor;
        c.fillRect(x,y,altura,largura);
        c.strokeStlye = "black";
        c.strokeRect(x,y,altura,largura);

    }



    for(var x = 0; x < 600; x = x + largura){
        for(var y = 0; y < 600; y = y + altura){
        fazQuadrado(x,y,altura,largura);
            }
    }




    </script>









</html>
10 respostas

Onde tem <600 vc vai usar <qntQuadrado

eu tentei isso, mas não importa a quantidade que eu digite, ele só faz 1 quadrado

Sua função fazQuadrado recebe 3 argumentos, mas no loop vc passa 4 argumentos.. Tenta ajeitar isso, prestando atenção nos parâmetros e aí verifica se funciona.

analisei o código e ainda assim não consegui entender :( Eu tenho que ter a mesma quantidade de argumentos na função e na chamada dela?

Sim.. se a função recebe 3, vc passa os mesmos 3 :).

o código ficou assim

var fazQuadrado = function(qntQuadrado,x,y){
        var tela = document.getElementById("tela");


        var c = tela.getContext("2d");

        c.fillStyle = cor;
        c.fillRect(x,y,altura,largura);
        c.strokeStlye = "black";
        c.strokeRect(x,y,altura,largura);

    }



    for(var x = 0; x < qntQuadrado; x = x + largura){
        for(var y = 0; y < qntQuadrado; y = y + altura){
        fazQuadrado(qntQuadrado,x,y);
            }
    }

mas ele continua imprimindo a quantidade errada, eu consigo fazer ele imprimir 4 quadrados, mas só se eu entrar com o valor 100 na hora que pergunta quantos quero criar.

Meu amigo, se vc esta fazendo um quadrado não precisa configurar altura, largura porque os valores são iguais!

O "quadrado" é mais simbólico, quero poder escolher suas medidas, assim como está sendo mostrado nas aulas. Acredito também que isso não tenha relação com o problema em que estou com dúvida

O número de quadrados vai depender do largura e altura que vc ta entrando... Já que vc incrementa em função disso.

É, não consigo encontrar a solução, outra hora volto a mexer com esse código. Agradeço as respostas :)