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

melhorar o código

ei, gente, tudo bem com vocês? quando o professor disse em "melhorar o nosso código, torná-lo mais legível", me surgiu uma dúvida: quanto menor um código (se fizermos uma refatoração certinha e tals), ele será considerado "melhor"? e quando eu pulo linhas (e deixo-as em branco) só para deixar as coisas mais separadinhas, eu estou "poluindo" o meu código? olhem como está o meu código até então (tem vários trechos comentados, para eu assimilar melhor - aliás, os comentários também poluem o código, quando em excesso?):

//tamanhos e posicoes:

//bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;

//raquete
let xRaquete = 5;
let yRaquete = 150;
let larguraRaquete = 10;
let comprimentoRaquete = 90;

//raquete2
let xRaquete2 = 585;
let yRaquete2 = 150;


//movimentos:

//bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;

//raquete2
let velocidadeYRaquete2;

//placar
let placarRaquete = 0;
let placarRaquete2 = 0;

function setup(){
  createCanvas(600, 400);
}

function draw(){
  background(0, 0, 255);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBolinha();
  mostraRaquete(xRaquete,yRaquete);
  movimentaRaquete();
  colisaoRaqueteBolinha();
  mostraRaquete (xRaquete2, yRaquete2);
  movimentaRaquete2();
  colisaoRaquete2Bolinha();
  incluiPlacar();
  marcaPonto ();


} //o erro que estava dando era porque uma estrutura condicional nao estava dentro do escopo da function draw(), eu fechava com os colchetes antes, logo o interpretador nao identificava. agora eu fecho ele aqui certin

function mostraBolinha(){
  fill (255, 255, 0)
  circle(xBolinha, yBolinha, diametro);
}

function movimentaBolinha(){
  xBolinha = xBolinha + velocidadeXBolinha;
  yBolinha += velocidadeYBolinha;
}

function verificaColisaoBolinha(){
  if (xBolinha + raio > width ||
   xBolinha - raio < 0){
  velocidadeXBolinha = velocidadeXBolinha * -1;
 }

if (yBolinha + raio > height ||
   yBolinha - raio < 0){
  velocidadeYBolinha *= -1;
}
}

//para criar as duas raquetes, eu usei a mesma funcao, so mudei os parametros (assim o codigo fica melhor escrito)
function mostraRaquete(x,y){
  fill (0, 100, 0)
 rect (x, y, larguraRaquete, comprimentoRaquete) 
}

function movimentaRaquete(){
  if (keyIsDown (UP_ARROW)){
    yRaquete = yRaquete - 10
  }
  if (keyIsDown (DOWN_ARROW)){
    yRaquete += 10;
  }
}

//esse entendi mais ou menos (nao entendi a terceira linha)
function colisaoRaqueteBolinha(){
  if (xBolinha - raio < xRaquete + larguraRaquete && 
      yBolinha - raio < yRaquete + comprimentoRaquete &&
      yBolinha + raio > yRaquete){
    velocidadeXBolinha *= -1;
  }
}

//meu deus, nao entendi nada da funcao a seguir
function movimentaRaquete2(){
  velocidadeYRaquete2 = yBolinha - yRaquete2 - larguraRaquete / 2 - 30;
  yRaquete2 += velocidadeYRaquete2
}

//se aquele eu nao entendi muito bem, esse entendi menos ainda
function colisaoRaquete2Bolinha(){
  if (xBolinha + raio > xRaquete2 &&
     yBolinha + raio < yRaquete2 + comprimentoRaquete &&
     yBolinha + raio > yRaquete2 - comprimentoRaquete){
    velocidadeXBolinha *= -1;
  }
}

function incluiPlacar(){
  fill (255)
  text (placarRaquete, 150, 30);
  text (placarRaquete2, 450, 30)
}

function marcaPonto(){
  if (xBolinha > 590){
    placarRaquete += 1;
  }
  if (xBolinha < 10){
    placarRaquete2 += 1;
  }
}

obrigada, pessoal :)

3 respostas

ah, outra dúvida que eu tenho é se o ideal é que escrevamos o nosso código com todos os termos em inglês. existe essa convenção?

solução!

Oi Anita! Tudo bem?

Sua dúvida é muito pertinente!

A refatoração do código tem a ver com organização e legibilidade. O uso de comentários é muito importante, e pode inclusive deixar o código mais organizado, como no caso das variáveis, em que eles funcionam quase como uma etiqueta. E em códigos para estudo, como o seu caso, os comentários são como anotações num livro didático: eles tem uma funcionalidade para essa situação específica - registrar seus pensamentos sobre esse trecho. Quando você estiver desenvolvendo profissionalmente ou com mais familiaridade, perceberá que os comentários poderão ter outras funcionalidades, e que pode ser legal também utilizar um caderno para registrar pensamentos mais complexos. Assim, a visualização do código não será comprometida.

Tudo bem pular linhas, eu também prefiro fazer assim!

Sobre sua última dúvida, não há necessidade de utilizar o inglês. Estamos programando no Brasil e entre brasileiros e brasileiras, então o mais importante é que o código seja acessível para quem for ter contato com ele. Entretanto, como a área de programação está no mundo todo, praticar o inglês e ter a capacidade de desenvolver nessa língua é uma super vantagem!

No próximo curso da formação de lógica de programação, em que aprendemos sobre laços e listas, o professor leva a refatoração à um novo nível: os códigos serão separados em arquivos diferentes para cada responsabilidade do programa.

Percebi, pelos seus comentários, que você está tendo alguma dificuldade em acompanhar a lógica por trás dos comandos. Vou deixar aqui um tópico do fórum em que eu expliquei sobre a lógica de movimentação da raquete do oponente, e acredito que possa te ajudar a compreender um pouquinho melhor. Lembre-se de que estamos sempre a disposição aqui no fórum para tirar suas dúvidas.

Como você se preocupou em ter um código limpo, sugiro também que você leia esse artigo super legal da Alura que fala exatamente sobre a importância de um bom design de código:

Espero ter ajudado, Anita! Caso tenha mais dúvidas, recorra ao fórum.

Forte abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.

muito obrigada, Larissa :)