1
resposta

[Projeto] ChatGPT está bem treinado

Estou fazendo os mesmos prompts para o chatGPT, mas o código não é o mesmo das aulas, percebi que já houveram algumas atualizações e mesmo na versão gratuita o código está mais bem feito e limpo, quase não há linhas de código inúteis, mas temos que pedir com carinho pq tem hora que ele se revolta e começa a ter muitos bugs. Não é uma dúvida, só uma observação pra deixar registrado. Bom curso pra vcs! <3

Até agora o código está assim:

    // Variáveis da bola
    let bolaX, bolaY, bolaVelX, bolaVelY, bolaRaio = 10;

    // Variáveis da raquete do jogador
    let raqueteJogadorY;
    const raqueteLargura = 10;
    const raqueteAltura = 80;
    const jogadorX = 20;

    // Variáveis da raquete do computador
    let raqueteComputadorY;
    const computadorX = 690;

    // Tamanho da tela e das barras
    const larguraTela = 720;
    const alturaTela = 480;
    const alturaBarra = 5; // Altura das barras horizontais


    function setup() {
        createCanvas(larguraTela, alturaTela);
        iniciarJogo();
    }

    function iniciarJogo() {
        // Posiciona a bola no centro e define velocidade inicial
        bolaX = larguraTela / 2;
        bolaY = alturaTela / 2;
        bolaVelX = random(3, 4) * (random() > 0.5 ? 1 : -1);
        bolaVelY = random(2, 3) * (random() > 0.5 ? 1 : -1);

        // Posiciona as raquetes
        raqueteJogadorY = alturaTela / 2 - raqueteAltura / 2;
        raqueteComputadorY = alturaTela / 2 - raqueteAltura / 2;
    }

    function draw() {
        background(0);
        desenharBarras();
        desenharBola();
        moverBola();
        desenharRaquete(jogadorX, raqueteJogadorY);
        desenharRaquete(computadorX, raqueteComputadorY);
        moverRaqueteJogador();
        moverRaqueteComputador();
        verificarColisoes();
    }

    function desenharBarras() {
        fill(255, 0, 0); //cor da barra
        // Barra superior
        rect(0, 0, larguraTela, alturaBarra);
        // Barra inferior
        rect(0, alturaTela - alturaBarra, larguraTela, alturaBarra);
        fill(255);
    }

    function desenharBola() {
        fill(0, 0, 255)
        ellipse(bolaX, bolaY, bolaRaio * 2, bolaRaio * 2);
        fill(255)
    }

    function moverBola() {
        bolaX += bolaVelX;
        bolaY += bolaVelY;

        // Rebote nas barras superior e inferior
        if (bolaY < alturaBarra + bolaRaio || bolaY > alturaTela - alturaBarra - bolaRaio) {
            bolaVelY *= -1;
        }

        // Verifica se houve gol e reposiciona a bola no centro
        if (bolaX < 0 || bolaX > larguraTela) {
            iniciarJogo();
        }
    }

    function desenharRaquete(x, y) {
        rect(x, y, raqueteLargura, raqueteAltura);
    }

    function moverRaqueteJogador() {
        // Controla a raquete do jogador com o mouse
        raqueteJogadorY = constrain(mouseY - raqueteAltura / 2, alturaBarra, alturaTela - alturaBarra - raqueteAltura);
    }

    function moverRaqueteComputador() {
        // Move a raquete do computador para uma posição aleatória após o jogador tocar na bola
        if (bolaX - bolaRaio <= jogadorX + raqueteLargura && bolaY >= raqueteJogadorY && bolaY <= raqueteJogadorY + raqueteAltura) {
            raqueteComputadorY = random(alturaBarra, alturaTela - alturaBarra - raqueteAltura);
        }
        // A raquete do computador se move lentamente em direção à posição aleatória
        raqueteComputadorY += (raqueteComputadorY - bolaY) * -0.05;
        raqueteComputadorY = constrain(raqueteComputadorY, alturaBarra, alturaTela - alturaBarra - raqueteAltura);
    }

    function verificarColisoes() {
        // Colisão com a raquete do jogador
        if (bolaX - bolaRaio <= jogadorX + raqueteLargura && bolaY >= raqueteJogadorY && bolaY <= raqueteJogadorY + raqueteAltura) {
            bolaVelX *= -1; // Inverte a direção horizontal

            // Calcula a posição de impacto na raquete do jogador (de -1 na borda superior a +1 na borda inferior)
            let impacto = (bolaY - raqueteJogadorY - raqueteAltura / 2) / (raqueteAltura / 2);

            // Ajusta o ângulo da bola com base na posição de impacto
            bolaVelY = impacto * 3; // Define um fator de ajuste para o ângulo vertical

            // Aumenta a velocidade da bola após colisão
            bolaVelX *= 1.5;
            bolaVelY *= 1.5;
        }

        // Colisão com a raquete do computador
        if (bolaX + bolaRaio >= computadorX && bolaY >= raqueteComputadorY && bolaY <= raqueteComputadorY + raqueteAltura) {
            bolaVelX *= -1; // Inverte a direção horizontal

            // Calcula a posição de impacto na raquete do computador (de -1 na borda superior a +1 na borda inferior)
            let impacto = (bolaY - raqueteComputadorY - raqueteAltura / 2) / (raqueteAltura / 2);

            // Ajusta o ângulo da bola com base na posição de impacto
            bolaVelY = impacto * 3; // Define um fator de ajuste para o ângulo vertical

            // Aumenta a velocidade da bola após colisão
            bolaVelX *= 1.1;
            bolaVelY *= 1.1;
        }
    }
1 resposta

Olá, Carla, tudo bem?

Que ótimo ver você explorando e comparando as respostas do ChatGPT com o conteúdo das aulas! Realmente, a IA está sempre evoluindo, e é interessante observar como até o código pode ser refinado com o tempo. Essas atualizações tornam a experiência de aprendizado ainda mais rica, e é muito bacana você ter compartilhado essa percepção com o pessoal aqui no fórum.

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)