1
resposta

Programa de dados para RPG

Olá pessoal! Como treinamento de fixação, resolvi fazer um programa pra rolar dados de RPG e somar com os modificadores dos jogadores. O código já esta funcional, mas não consegui colocar um alerta caso a pessoa ponha um valor invalido na hora de escolher o dado que vai rolar.

Agradeço desde já a ajuda S2 <3 segue o código

<meta charset = "UTF-8">

<script>

    var contador = 1

    while (contador >=1) {
        var d100 = Math.round(Math.random()*100);
        var d20 = Math.round(Math.random ()*20);
        var d12 = Math.round(Math.random()*12);
        var d10 = Math.round(Math.random()*10);
        var d8 = Math.round(Math.random()*8);
        var d6 = Math.round(Math.random()*6);
        var d4 = Math.round(Math.random()*4);
        var rolar = prompt ("Escolha o seu dado (d10, d20, d12, d10, d8, d6, d4)");



        if (rolar == "d100")  {
            if (d100 !== 0){
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d100 + modificador);
            alert ("Seu resultado foi " + resultado);
            }

        }
        if (rolar == "d20"){

            if (d20 !== 0) {
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d20 + modificador);
            alert ("Seu resultado foi " + resultado);
            }

        }

        if (rolar == "d12"){
            if (d12 !== 0){
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d12 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        if (rolar == "d10"){
            if (d10 !== 0){
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d10 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        if (rolar == "d8"){
            if (d8 !== 0) {
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d8 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        if (rolar == "d6"){
            if (d6 !== 0) {
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d6 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        if (rolar == "d4"){
            if (d4 !== 0) {
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d4 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }            
    }



    </script>
1 resposta

Oii Márcio, como você está?

Parabéns por ter utilizado os conhecimentos aprendidos no curso e ido além do que foi ensinado. Iniciativas como a sua possuem total destaque no mercado de trabalho e além disso, reforça o aprendizado da tecnologia como um todo.

Neste caso, para inserimos um alerta caso não seja um dado dentre as opções válidas, ou seja: d10, d20, d12, d8, d6, d4, podemos inserir a cláusula else, que dirá que caso nenhuma das opções da condição if sejam atendidas, o código entrará dentro deste bloco e exibirá o alerta.

Em código teremos o seguinte:

else {
  alert("Você digitou um valor incorreto. Digite um dado válido: (d10, d20, d12, d10, d8, d6, d4) ")
 }

Resultado:

Gif com fundo preto, que mostra a tela do prompt do navegador Chorme aberta. Primeiro, é perguntado qual dado deseja rolar, é inserido o valor d50 e a mensagem de valor inválido é apresentada. Após isso, novamente, é pedido qual dado deseja rolar, é colocado o valor d87 e a mensagem de valor inválido é apresentada. No número 156 a mensagem também aparece. Após isso, é inserido um valor válido (d10) e o modificador 6, e o cálculo é apresentado.

Sendo assim, se colocássemos o valor d50, ou até mesmo apenas um número, o alerta será exibido.

Abaixo, o código completo com a inserção do else:

<meta charset = "UTF-8">

<script>

    var contador = 1

    while (contador >=1) {
        var d100 = Math.round(Math.random()*100);
        var d20 = Math.round(Math.random ()*20);
        var d12 = Math.round(Math.random()*12);
        var d10 = Math.round(Math.random()*10);
        var d8 = Math.round(Math.random()*8);
        var d6 = Math.round(Math.random()*6);
        var d4 = Math.round(Math.random()*4);
        var rolar = prompt ("Escolha o seu dado (d10, d20, d12, d10, d8, d6, d4)")


        if (rolar == "d100")  {
            if (d100 !== 0){
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d100 + modificador);
            alert ("Seu resultado foi " + resultado);
            }

        }
        else if (rolar == "d20"){

            if (d20 !== 0) {
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d20 + modificador);
            alert ("Seu resultado foi " + resultado);
            }

        }

        else if (rolar == "d12"){
            if (d12 !== 0){
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d12 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        else if (rolar == "d10"){
            if (d10 !== 0){
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d10 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        else if (rolar == "d8"){
            if (d8 !== 0) {
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d8 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        else if (rolar == "d6"){
            if (d6 !== 0) {
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d6 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        else if (rolar == "d4"){
            if (d4 !== 0) {
            var modificador = parseInt (prompt ("Qual o modificador?"));
            var resultado = parseInt(d4 + modificador);
            alert ("Seu resultado foi " + resultado);
            }
        }

        else {
            alert("Você digitou um valor incorreto. Digite um dado válido: (d10, d20, d12, d8, d6, d4) ")
        }
    }



    </script>

Conte com a Alura para evoluir seus estudos.

Fico à disposição.

Grande abraço!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software