Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Outra forma pensada

Eu fiz desta outra forma. Criei uma variável para definir o tamanho do limite do canvas e quando o circulo chega neste limite, altera a variável inicio (sentido usado pelo professor) para false. Não sei dizer se é a forma mais correta ou mais prática, mas quebrei a cabeça pra chegar neste resultado.

var tamW = 600
var tamH = 400
    pincel.fillStyle = "white"
    pincel.fillRect(0, 0, tamW, tamH)
function desenhaNovoCirculo(x, y, raio)
{
    pincel.fillStyle = "blue"
    pincel.beginPath()
    pincel.arc(x, y, raio, 0, 2*Math.PI)
    pincel.fill()
}
function limpaTela()
{
    pincel.clearRect(0, 0, 600, 400)
}
var x = 20
var inicio = true
function  atualizaTela(evento)
{
    limpaTela()
    desenhaNovoCirculo(x, 20, 10)

    if(x == 20){
        inicio = true
    }
    if(x >= (tamW - 20)){
        inicio = false
    }
    if(inicio){
        x++
    } else {
        x = x - 1
    }
}
3 respostas
solução

Boa noite, Renan! Como vai?

Como vc acabou de perceber, no mundo da computação muitas vezes temos mais de uma forma de resolver o mesmo problema!

A única ressalva que eu faço é com relação ao design do seu código. O ideal no mundo JS é terminar as declarações com instruções com o ; (ponto e vírgula).

Além disso, de forma mais comum, as chaves que abrimos para definir um bloco normalmente se iniciam na mesma linha da declaração que estamos criando! Por exemplo:

function pulaLinha() { // Chave na mesma linha da função.
     document.write('<br>');
}

if (true) { // Chave na mesma linha do if.
     pulaLinha();
}

Esses padrões são encontrados normalmente na maior parte dos códigos em JS.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Boa Noite Gabriel, Tudo bem? Em relação ao ";", eu não lembro onde eu li, falando que no JavaScript o ";" no final da linha é indiferente para a aplicação, por isso não dá nenhum problema. Antes eu colocava, dps que parei. É o costume. Vou me policiar mais nesta questão.

E em relação as "{" na minha linha da função, é questão de costume também. Me organizo melhor nos códigos desta forma.

Mas obrigado pela atenção e pelo Feedback!

Opa, Renan! Tudo ótimo por aqui!

Em relação ao ";", eu não lembro onde eu li, falando que no JavaScript o ";" no final da linha é indiferente para a aplicação, por isso não dá nenhum problema.

Sim, não é obrigatório! Mas em algumas situações problemas decorrentes da falta do ponto e vírgula podem surgir e te levarem para densas trevas! Então colocar esse cara no final das suas declarações além de ser uma boa prática também pode evitar várias dores de cabeça!

E em relação as "{" na minha linha da função, é questão de costume também. Me organizo melhor nos códigos desta forma.

Sim, o pessoal do C# por exemplo se amarra nessa forma de codificar! Contudo, como te falei no meu primeiro comentário, o estilo de código que te mostrei é o mais comum no mundo JS. Minha orientação dada a vc era apenas no sentido de te estimular a se adaptar para que seu código possa agradar ao pessoal da comunidade e ser bem visto por todos! Afinal de contas, nunca programamos apenas para nós mesmos e é sempre bom podermos contar com o apoio de outros desenvolvedores!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!