So cercando di realizzare uno script che simuli il problema di Giosefo.
In pratica il problema di Giosefo è il gioco delle sedie, dove ci sono n bambini e n - 1 sedie.
Ho scritto questo:
pag.html:
Codice HTML:
<html>
<head>
<script type="text/javascript">
function hidden(id1,id2,id3)
{
document.getElementById(id1).style.display='block';
document.getElementById(id2).style.display='none';
document.getElementById(id3).style.display='none';
}
function all()
{
document.getElementById('n').style.display='none';
document.getElementById('nn').style.display='none';
document.getElementById('nnn').style.display='none';
}
</script>
<style>
#n, #nn, #nnn {display: none}
</style>
<title>Problema di Giosefo</title>
</head>
<body>
<form action="azione.php" name="giosefo" method="post">
Quanti partecipanti ci sono?<br>
4: <input type="radio" value="4" name="part" onclick="hidden('n','nn','nnn')"><br>
<div id="n">
Inserisci i nomi dei partecipanti:<br>
<input type="text" name="p1"><br><br>
<input type="text" name="p2"><br><br>
<input type="text" name="p3"><br><br>
<input type="text" name="p4"><br><br>
</div>
5: <input type="radio" value="5" name="part" onclick="hidden('nn','n','nnn')"><br>
<div id="nn">
Inserisci i nomi dei partecipanti:<br>
<input type="text" name="p5"><br><br>
<input type="text" name="p6"><br><br>
<input type="text" name="p7"><br><br>
<input type="text" name="p8"><br><br>
<input type="text" name="p9"><br><br>
</div>
6: <input type="radio" value="6" name="part" onclick="hidden('nnn','n','nn')"><br>
<div id="nnn">
Inserisci i nomi dei partecipanti:<br>
<input type="text" name="p10"><br><br>
<input type="text" name="p11"><br><br>
<input type="text" name="p12"><br><br>
<input type="text" name="p13"><br><br>
<input type="text" name="p14"><br><br>
<input type="text" name="p15"><br><br>
</div>
<br>
<input type="submit" value="Gioca!"> <input type="reset" value="Cancella" onclick="all()">
</form>
</body>
</html>
azione.php
Codice PHP:
<?php
$part = $_POST['part'];
$p = array();
switch($part) {
case "4":
$p[1] = $_POST['p1'];
$p[2] = $_POST['p2'];
$p[3] = $_POST['p3'];
$p[4] = $_POST['p4'];
break;
case "5":
$p[5] = $_POST['p5'];
$p[6] = $_POST['p6'];
$p[7] = $_POST['p7'];
$p[8] = $_POST['p8'];
$p[9] = $_POST['p9'];
break;
case "6":
$p[10] = $_POST['p10'];
$p[11] = $_POST['p11'];
$p[12] = $_POST['p12'];
$p[13] = $_POST['p13'];
$p[14] = $_POST['p14'];
$p[15] = $_POST['p15'];
break;
}
$giri = $part - 1;
//echo $giri."<br>"; debug
for($i=1;$i<=$giri;$i++) {
switch($part) {
case "4":
$rand = mt_rand(1,4);
break;
case "5":
$rand = mt_rand(5,9);
break;
case "6":
$rand = mt_rand(10,15);
break;
}
echo "Giro ".$i.": esce ".$p[$rand]."<br>";
unset($p[$rand]);
}
/*debug
foreach($p as $index) {
echo $index."<br>";
}
*/
echo "Il vincitore è: ".$p[0]."<br>";
?>
Solo che l'output non va bene, perchè il cilo si esegue solo 2 volte.
Pagina di prova: http://crashinside.net/esempi/pag.html