Visualizzazione risultati 1 fino 8 di 8

Discussione: Random tra due valori (JavaScript)

  1. #1
    Guest

    Predefinito Random tra due valori (JavaScript)

    Come posso fare un random tra due numeri, dove il minimo é > 1?
    Lo script sotto se metto il valore maggiore di 1 il valori del valore massimo superano quello settato.
    Es. con 3 e 7 estrae valori maggiori di 7..

    Codice HTML:
    <!DOCTYPE html>
    <html>
    <head>
    <script>
    function myFunction() 
    {
    var a=eval(form.uno.value);
    var b=eval(form.due.value);
    var x = Math.floor((Math.random() * b) + a);
        document.getElementById("dado").innerHTML = x;
    }
    </script>
    </head>
    <body>
    <p>Lanciare un dado con valore "min" e "max"!</p>
    <form name="form" 	action="#">
    min<input name="uno" type="number"></input><br>
    max<input name="due" type="number"></input><br>
    <input onclick="myFunction()" type="button" value="Lancia"</input>
    </form>
    <h1 id="dado"></h1>
    </body>
    </html>
    Grazie
    Ultima modifica di alemoppo : 20-11-2016 alle ore 16.33.14 Motivo: +tag

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,145

    Predefinito

    Invece di moltiplicare per b, moltiplica per (b-a) e poi sommaci a.

    EDIT: se vuoi che il massimo sia incluso, visto che la Math.random() non torna 1, aggiungi +1 alla differenza (b-a).

    Ciao!
    Ultima modifica di alemoppo : 20-11-2016 alle ore 16.36.46

  3. #3
    Guest

    Predefinito

    OK , ma come posso fare perché il valore minimo sia solo quello inserito?
    Provando il valore massimo é quello inserito, ma il minimo no.

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,145

    Predefinito

    Come no? A me da sia 5 sia 6 in questo esempio:
    Codice HTML:
    <!DOCTYPE html>
    <html>
    <head>
    <script>
    function myFunction() 
    {
    var a=eval(form.uno.value);
    var b=eval(form.due.value);
    var x = Math.floor((Math.random() * (b-a+1)) + a);
        document.getElementById("dado").innerHTML = x;
    }
    </script>
    </head>
    <body>
    <p>Lanciare un dado con valore "min" e "max"!</p>
    <form name="form" 	action="#">
    min<input name="uno" type="number" value="5"></input><br>
    max<input name="due" type="number" value="6"></input><br>
    <input onclick="myFunction()" type="button" value="Lancia"</input>
    </form>
    <h1 id="dado"></h1>
    </body>
    </html>
    Ciao!

  5. #5
    Guest

    Predefinito

    OK risolto. Grazie

  6. #6
    Guest

    Predefinito

    Modificando l esempio aggiungo dei modificatori in + e in - sul tiro,
    Solo che mi da dei valori errati, forse ho impostato male il calcolo:
    Codice HTML:
    <!DOCTYPE html> 
    <html> 
    <head> 
    <script> 
    function myFunction() 
    { 
    var a=eval(form.uno.value); 
    var b=eval(form.due.value); 
    
    var n =eval(form.num.value); 
    var p =eval(form.piu.value); 
    var m =eval(form.meno.value); 
    
    var x = Math.floor((n * Math.random() * (b +p-m -a+1))+a); document.getElementById("dado").innerHTML = x; 
    }
     </script> 
     </head>
     
      <body> 
      <p>Lanciare un dado con valore "min" e "max"!</p>
      
       <form name="form" 	action="#"> 
       min<input name="uno" type="number" value="1"></input><br>
        max<input name="due" type="number" value="6"></input><br> 
           n° dadi<input name="num" type="number" value="1"></input><br>
        mod +<input name="piu" type="number" value="0"></input><br> 
        mod -<input name="meno" type="number" value="0"></input><br><br>
        <input onclick="myFunction()" type="button" value="Lancia"</input>
      </form> 
         
         <h1 id="dado"></h1> 
         
         </body> 
         </html>
    Grazie
    Ultima modifica di alemoppo : 24-11-2016 alle ore 20.53.19 Motivo: +tag

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,145

    Predefinito

    Non ho ben capito cosa intendi con i campi "più" e "meno". In ogni caso, per far estrazione multipla con somma finale:

    Codice HTML:
    <!DOCTYPE html> 
    <html> 
    <head> 
    <script> 
    function myFunction() 
    { 
    	var a=eval(form.uno.value); 
    	var b=eval(form.due.value); 
    
    	var n =eval(form.num.value); 
    	var p =eval(form.piu.value); 
    	var m =eval(form.meno.value); 
    
    	document.getElementById("dado").innerHTML = ''; 
    	var somma = 0;
    	for(var i=0;i<n;i++)
    	{
    		var x = Math.floor((Math.random() * (b-a+1)) + a);
    		somma += x;
    		document.getElementById("dado").innerHTML += x+' '; 
    	}
    	document.getElementById("dado").innerHTML += 'Somma: '+somma;
    }
    </script> 
    </head>
    
    <body> 
    <p>Lanciare un dado con valore "min" e "max"!</p>
    
    <form name="form" action="#"> 
    min<input name="uno" type="number" value="1"></input><br>
    max<input name="due" type="number" value="6"></input><br> 
    n° dadi<input name="num" type="number" value="1"></input><br>
    mod +<input name="piu" type="number" value="0"></input><br> 
    mod -<input name="meno" type="number" value="0"></input><br><br>
    <input onclick="myFunction()" type="button" value="Lancia"</input>
    </form> 
    
    <h1 id="dado"></h1> 
    
    </body> 
    </html>
    Ciao!

  8. #8
    Guest

    Predefinito

    I modificatori + e - sono valori interi da sommare o sottrarre al valore estratto dal random.
    Lo scopo é lanciare uno o più dadi per poi poter aggiungere opzionalmente questi valori al tiro o alla somma dei tiri, é una utility per giochi di ruolo.
    Ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •