Fala galera, aqui estão as minhas resoluções para os últimos desafios da aula de condicionais e concatenação.
Exercício: Crie um sistema de pontuação para um jogo. Se a pontuação for maior ou igual a 100, mostre "Parabéns, você venceu!". Caso contrário, mostre "Tente novamente para ganhar."
Busquei primeiramente a conversão do valor digitado pelo usuário para número inteiro, com o parseInt().
Com a variável convertida, na primeira estrutura condicional eu checo se realmente são foram recebidos apenas números e posteriormente o resultado da pontuação.
//Crie um sistema de pontuação para um jogo. Se a pontuação for maior ou igual a 100, mostre "Parabéns, você venceu!". Caso contrário, mostre "Tente novamente para ganhar.".
alert('Bem-vindo, player!');
console.log('Para ganhar, o usuário deve ter 100 ou mais pontos.');
//Conversão em número inteiro.
let pontuacao = Number.parseInt(prompt('Para saber sobre seu resultado no jogo, digite sua pontuação final:'));
console.log(`Pontuação: ${pontuacao}.`);
//Verifica se o usuário digitou números.
if (isNaN(pontuacao)) {
alert('Digite apenas números! Por favor, tente novamente.');
} else {
if (pontuacao >= 100) {
alert('Parabéns, você venceu!');
} else {
alert('Tente novamente para ganhar.');
}
}
Exercício: Crie uma mensagem que informa o usuário sobre o saldo da conta, usando uma template string para incluir o valor do saldo.
Para um resultado mais divertido praticando a template string, primeiro peço o nome do usuário e faço as suas devidas validações:
Tiros os espaços em branco e abro uma condicional para checar se o campo está vazio.
Entrando no else, vamos agora para o valor de depósito do usuário.
Transformo em inteiro, novamente com o método parseInt() e o código verifica se esse valor:
• É igual o menor que 0. Assim não sendo possível acrescentar ao saldo.
• É realmente um número. Se identificado uma string (letras ou caracteres especiais), também não há possibilidade de continuar.
Passando por todas essas condicionais, pesquisando no Google encontrei o método toLocaleString() que formata informações como data, números e etc para a localidade que selecionei.
Coloquei "pt-BR" e assim transformando 10000000 em 10.000.000, por exemplo.
Finalizo retornando ao usuário seu nome e seu saldo disponível com a template string pedida.
Esse código pode vir a ser modificado futuramente. Pretendo fazer um sistema simulando um banco.
Podendo fazer mais depósitos, saques e ao término das transações, mostrar ao usuário seus dados atualizados.
//Crie uma mensagem que informa o usuário sobre o saldo da conta, usando uma template string para incluir o valor do saldo.
alert('Sistema de saldo.');
let nomeUsuario = prompt('Nos diga seu nome:');
nomeUsuario = nomeUsuario.trim();
console.log(`Nome do usuário: ${nomeUsuario}.`);
if (nomeUsuario === '') {
alert('O campo está vazio. Atualize a página e tente novamente.');
} else {
let depositoUsuario = Number.parseInt(prompt('Coloque o valor que deseja depositar:'));
console.log(`Valor depositado: R$${depositoUsuario}.`);
if (depositoUsuario <= 0 || isNaN(depositoUsuario)) {
alert('Não é possível adicionar esse valor. Atualize a página e tente novamente.');
} else {
depositoUsuario = depositoUsuario.toLocaleString('pt-BR');
console.log(`Saldo: R$${depositoUsuario}.`);
alert(`Olá, ${nomeUsuario}. O seu saldo disponível é: R$${depositoUsuario}.`);
}
}
Atualização: Encontrei um bug no código em que não consigo validar se o usuário enviou um campo vazio na parte:
let depositoUsuario = Number.parseInt(prompt('Coloque o valor que deseja depositar:'));
Pesquisando, vi que o correto é primeiro validar a entrada do usuário e aí sim converter para número inteiro:
// Verifica se o campo está vazio ou só com espaços
if (entradaDeposito === null || entradaDeposito.trim() === '') {
alert('Campo de depósito vazio. Atualize a página e tente novamente.');
} else {
// Converte depois de validar
let depositoUsuario = Number.parseInt(entradaDeposito, 10);
Exercício: Peça ao usuário para inserir seu nome usando prompt. Em seguida, mostre um alerta de boas-vindas usando esse nome.
Aqui verifico se o campo não está vazio e se não foi digitado números. Ainda preciso validar o uso de caracteres especiais.
//Peça ao usuário para inserir seu nome usando prompt. Em seguida, mostre um alerta de boas-vindas usando esse nome.
let nome = prompt('Olá! Por favor, insira seu nome:');
console.log(`Nome do usuário: ${nome}.`);
//Utilizei o ! para inverter o uso da função isNaN. Se o usuário digitar apenas números, não será valido.
if (nome === '' || !isNaN(nome)) {
alert('O nome não é valido. Atualize a página e tente novamente.');
}
else {
alert(`Bem-vindo(a), ${nome}!`);
}