2
respostas

Duvida na atividade 03; Sistema de Pontuação:

Boa tarde pessoal, tudo bem?
Eu estou com uma duvida aqui no meu codigo e estou um pouco bugado kkk tanto que to divindo ele por etapas.

  1. Eu pretendo criar um Sistema de pontuação de acordo com a respostas certas de cada pergunta;
  2. Cada pergunta valerá 25 pontos;
  3. A pontuação a ser atingida sera 100 ou mais que 100;
  4. Eu pretendo criar 5 perguntas, sendo totalizadas 125 pontos.

Com base em tudo isso, eu gostaria se eu estou seguindo pelo caminho certo e, aonde eu preciso mudar para que os valoers apareçam...
IVsCode

2 respostas

depois de boas horinhas e com uma ajudinha da inteligencia artificial (ainda filtrei para nao pegar respostas logo de cara) eu pôde apresentar o que eu desejava (não esta 100% mas ja esta quase encerrando)

alert('Boas vindas, novo usuário!');
alert('Hoje iremos fazer um teste para medir o seu QI. Vamos começar?');
let pontuacaoParaAtingir = 100;
let saldoUsuario = 0;


let perguntaUm = prompt('Quantos dias contém um ano bissexto?');
if (perguntaUm == 366) {
    alert('Parabéns, você acertou! Você recebeu 25 pontos. Próxima pergunta:');
    saldoUsuario += 25
    console.log(saldoUsuario);
} else {
    alert('Resposta errada. Próxima pergunta:');

}

let perguntaDois = prompt('Qual é o componente do computador que armazena temporariamente as informações do computador');
if(perguntaDois == 'Memoria RAM') {
    alert('Parabéns, você acertou! Você recebeu 25 pontos. Próxima pergunta:');
    saldoUsuario += 25
    console.log(saldoUsuario);
} else {
    alert('Resposta errada. Próxima pergunta:');
}

let perguntaTres = prompt('Um byte tem quantos bits?');
if(perguntaTres == '8 bites') {
    alert('Parabéns, você acertou! Você recebeu 25 pontos. Próxima pergunta:');
    saldoUsuario += 25
    console.log(saldoUsuario);
} else {
    alert('Resposta errada. Próxima pergunta:');
}

let perguntaQuatro = prompt('As 3 principais linguagens da programação para ser considerado um FullStack são:');
if(perguntaQuatro == 'HTML, CSS e JavaScript') {
    alert('Parabéns, você acertou! Você recebeu 25 pontos. Próxima pergunta:');
    saldoUsuario += 25
    console.log(saldoUsuario);
} else {
    alert('Resposta errada. Próxima pergunta:');
}

let perguntaCinco = prompt('Qual é o valor da raiz quadrada de 144?');
if(perguntaCinco == 12){
    alert('Parabéns, você acertou! Você recebeu 25 pontos. Próxima pergunta:');
    saldoUsuario += 25
    console.log(saldoUsuario);
} else {
    alert('Resposta errada. Próxima pergunta:');
}

Imagem do VsCode

Olá, Thiago. Como vai?

Parabéns pelo empenho em resolver o desafio! É muito gratificante quando passamos algumas horas "quebrando a cabeça" e finalmente vemos o resultado aparecendo no console, como mostram os valores 25, 50, 75 e 100 na sua imagem.

Você está sim no caminho certo! A lógica de utilizar uma variável acumuladora (saldoUsuario += 25) é a base para sistemas de pontuação em jogos e aplicações reais.

Para que seu projeto fique 100% e você saia desse "bug", gostaria de destacar alguns pontos técnicos importantes que observei nas suas imagens e no seu código:

  • O Operador de Atribuição Aditiva (+=): No início (segunda imagem), você estava usando saldoUsuario = 25. Isso fazia com que o valor fosse sempre "substituído" por 25. Ao mudar para saldoUsuario += 25, você passou a somar 25 ao valor que já existia, o que é o correto para acumular pontos.
  • Comparação de Strings: Na pergunta três, você definiu o acerto como '8 bites'. Note que o termo técnico correto é bits. Se o usuário digitar "8 bits", o sistema dará como errado. Uma dica de ouro em JavaScript é usar o método .toLowerCase() para comparar textos, evitando que uma letra maiúscula ou minúscula quebre sua lógica.
  • Fechamento do Desafio: Como o objetivo era verificar se a pontuação atingiu 100, falta apenas um bloco final para dar o veredito ao usuário.

Exemplo prático de como finalizar o seu código:

Após a última pergunta, você pode adicionar uma condição para verificar se o usuário venceu:

if (saldoUsuario >= pontuacaoParaAtingir) {
    alert(`Parabéns! Sua pontuação final foi de ${saldoUsuario} pontos. Você venceu!`);
} else {
    alert(`Sua pontuação foi de ${saldoUsuario} pontos. Tente novamente para atingir 100!`);
}

Um detalhe importante na imagem 2:
Notei que você tentou usar let saldoUsuario = Number(points);. Como a variável points não foi definida anteriormente no seu script, isso causaria um erro de "is not defined". O ideal é começar com let saldoUsuario = 0;, como você fez na versão final do texto.

Continue praticando essa estrutura de condicionais, ela é fundamental para qualquer desenvolvedor!

Espero que possa ter lhe ajudado!