Boa tarde a todos!
Fiquei encucado com o movimento da raquete do oponente durante um bom tempo, e analisei algumas opções que o pessoal fez por aqui. Fiquei incomodado que a raquete ficaria com maior ou menor chance de erro dependendo de quantos pontos foram feitos, e tentei uma opção que fosse mais "aleatória".
Declarei a variável:
let chanceDeErrar = 0;
Depois deixei a função semelhante a do professor:
function movimentaRaqueteOponente() {
velocidadeRaqueteOponente = yBolinha - yRaqueteOponente - raqueteAltura / 2 - 30 - chanceDeErrar;
yRaqueteOponente += velocidadeRaqueteOponente;
Mas, na hora que os pontos são feitos, optei por adicionei um valor de aleatoriedade:
function marcaPonto (){
if (xBolinha > 590) {
meusPontos += 1;
ponto.play();
chanceDeErrar = parseInt(Math.random()* (70 - (-50)) + (-50));
}
if (xBolinha < 10) {
pontosDoOponente += 1;
ponto.play();
chanceDeErrar = parseInt(Math.random()* (70 - (-50)) + (-50));
}
}
Pesquisei na internet e esse Math.random basicamente entregaria um valor entre 70 e -50 (eu acho, kkkkk) para ser adicionado ao cálculo da posição da raquete do adversário. A princípio eu vi que ela a bolinha sempre errava para valor baixo, então adicionei até -50 na expectativa de que a bolinha suba, mas seria bom ir testando valores.
O que acham? Ficou bom? Só fica feio porque toda vez que faz ponto, a raquete dá um tranco. E não resolve o problema do bug da bolinha agarrando. Acho que a solução mais bonita mesmo seria resetar a bolinha e a posição das raquetes, adicionando esse valor aleatório à conta do y da raquete, toda vez que fizesse ponto. Mas isso eu ainda não consegui.