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

Movimento da raquete do oponente muito róbotico e nunca erra!

Olá pessoal, estou tendo problemas quanto ao movimento da raquete, ele parece muito robótico sempre acertando no mesmo ponto do canto da raquete, e independente de eu mudar os números na função "calculaChanceDeErrar" ele parece que essa chance nunca aumenta...

Segue link: https://editor.p5js.org/renanperao/sketches/Kd6c8BQEi

2 respostas
solução!

Oi, Renan! Tudo bom?

Desculpe a demora em te responder.

Entendo sua preocupação, Renan, mas é importante lembrar que simular a imprevisibilidade e a complexidade da ação humana em um jogo não é uma tarefa simples. O nosso comportamento é cheio de nuances e variações que são desafiadoras de replicar digitalmente, mas trago aqui uma alternativa para o seu Pong!

Observe o código abaixo:

function movimentoOponente() {
    let diferencaY = yBolinha - yOponente - comprimentoRaquete / 2;
    if (random(0, 100) < chanceDeErrar) {
        diferencaY = random(-7, 7); 
    }
    yOponente += diferencaY * 0.05;
}


function calculaChanceDeErrar() {
    if (pontosDoOponente >= meusPontos) {
        chanceDeErrar = 30; 
    } else {
        chanceDeErrar = 60; 
    }
}

Na função movimentoOponente(), construímos a seguinte lógica:

  • Calcula-se a diferença entre a posição da bola e o centro da raquete do oponente;
  • Decide-se, aleatoriamente, se o oponente "erra" com base na chanceDeErrar;
  • Se "erra", move-se aleatoriamente entre -7 e 7;
  • Atualiza-se a posição da raquete do oponente em 5% da diferença calculada ou na direção aleatória.

Enquanto isso, na função calculaChanceDeErrar(), organizamos o seguinte:

  • Se o oponente estiver ganhando ou empatado, a chance de errar é de 30%;
  • Se o oponente estiver perdendo, a chance de errar é de 60%.

Renan, ao fim, chegaremos neste resultado:

Jogo do Pong, no P5.js, com mudanças na forma pela qual o oponente joga.

Espero que goste dessa alternativa, Renan! Lembre-se que ela não é perfeita — sinta-se confortável para aprimorá-la e deixá-la do seu jeito!

Qualquer dúvida, estarei por aqui.

Um abraço!

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

Andrieli você é sensacional! Obrigado pela solução.