Salve a tutti,
per sperimentare a fondo la funzione "Math" e i metodi "floor" e "random" ho creato un giochino che simula il lancio di due dadi. Questo è il codice che ho scritto:
e nel corpo della pagina
<script type="text/javascript">
function lancio (dado , dado2) {
var dado_value=Math.floor(Math.random()*6);
var dado_value2=Math.floor(Math.random()*6);
switch (dado_value) {
case 0:
dado.src='img/face1.png';
break;
case 1:
dado.src='img/face2.png';
break;
case 2:
dado.src='img/face3.png';
break;
case 3:
dado.src='img/face4.png';
break;
case 4:
dado.src='img/face5.png';
break;
case 5:
dado.src='img/face6.png';
break;}
switch (dado_value2) {
case 0:
dado2.src='img/face1.png';
break;
case 1:
dado2.src='img/face2.png';
break;
case 2:
dado2.src='img/face3.png';
break;
case 3:
dado2.src='img/face4.png';
break;
case 4:
dado2.src='img/face5.png';
break;
case 5:
dado2.src='img/face6.png';
break;}
if (dado_value > dado_value2) {alert("Complimenti, hai vinto")}
else if (dado_value == dado_value2) {alert("Pareggio!");}
else {alert("Hai perso, ritenta!");}
};
Funziona tutto perfettamente, però vorrei anche tenere memoria del numero di vittorie, sconfitte e pareggi. Ho provato così:
[img]img/noface.png[/img]
[img]img/noface.png[/img]
<input type="button" value="lancia il dado"; onclick="lancio(dado , dado2)" />
var count=1;
if (dado_value > dado_value2) {alert("Complimenti, hai vinto per la " + count + " volta"); return count++;}
il valore della variabile count tuttavia non viene modificato, rimane a 1. Se uso invece un loop for
for (var count=1 ; dado_value > dado_value2 ; count++)
ottengo l'effetto desiderato, ma in un loop infinito, come d'altra parte era ovvio aspettarsi. Mi chiedevo come far sì che una variabile cambi valore e ne conservi memoria.
Grazie a tutti dell'attenzione.
Saluti!