bdd-infuma:2011:sedici
<html> <body> <? // funzione, che stampa la tabella // con i "quadratini" function stampa($Q) { echo "<form method=\"post\" action=\"index.php\"> \n"; echo "<table border=\"1\"> \n"; for ($riga=0; $riga<4; $riga++) { echo "<tr>"; // inizio riga for ($colonna=0; $colonna<4; $colonna++) { if ($Q[$riga][$colonna]!="0") { // echo "<td>". $Q[$riga][$colonna] ."</td>"; echo "<td align=\"center\"> <input type=\"submit\" name=\"mossa\" value=\"". $Q[$riga][$colonna] ."\" /> </td> \n"; } else { echo "<td> </td>"; } } echo "</tr> \n"; // fine riga } echo "</table> \n"; echo "<input type=\"hidden\" name=\"quadrato00\" value=\"". $Q[0][0] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato01\" value=\"". $Q[0][1] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato02\" value=\"". $Q[0][2] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato03\" value=\"". $Q[0][3] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato10\" value=\"". $Q[1][0] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato11\" value=\"". $Q[1][1] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato12\" value=\"". $Q[1][2] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato13\" value=\"". $Q[1][3] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato20\" value=\"". $Q[2][0] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato21\" value=\"". $Q[2][1] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato22\" value=\"". $Q[2][2] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato23\" value=\"". $Q[2][3] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato30\" value=\"". $Q[3][0] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato31\" value=\"". $Q[3][1] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato32\" value=\"". $Q[3][2] ."\" /> \n"; echo "<input type=\"hidden\" name=\"quadrato33\" value=\"". $Q[3][3] ."\" /> \n"; // echo "<input type=\"hidden\" name=\"vecchio[3][3]\" value=\"". $Q[3][3] ."\" /> \n" echo "</form>"; } // crea il gioco alla prima connessione function primo_quadrato () { $Q = array ( array("1", "2", "3", "4"), array("5", "6", "7", "8"), array("9", "10", "11", "12"), array("13", "0","14", "15") ); // se esiste fra i parmetri // lo sovrascrivo con i nuovi calori if ( isset($_REQUEST["quadrato00"]) ) { // $nuovo = $_REQUEST["vecchio"]; $Q[0][0] = $_REQUEST["quadrato00"]; $Q[0][1] = $_REQUEST["quadrato01"]; $Q[0][2] = $_REQUEST["quadrato02"]; $Q[0][3] = $_REQUEST["quadrato03"]; $Q[1][0] = $_REQUEST["quadrato10"]; $Q[1][1] = $_REQUEST["quadrato11"]; $Q[1][2] = $_REQUEST["quadrato12"]; $Q[1][3] = $_REQUEST["quadrato13"]; $Q[2][0] = $_REQUEST["quadrato20"]; $Q[2][1] = $_REQUEST["quadrato21"]; $Q[2][2] = $_REQUEST["quadrato22"]; $Q[2][3] = $_REQUEST["quadrato23"]; $Q[3][0] = $_REQUEST["quadrato30"]; $Q[3][1] = $_REQUEST["quadrato31"]; $Q[3][2] = $_REQUEST["quadrato32"]; $Q[3][3] = $_REQUEST["quadrato33"]; } return $Q; } // trova posizione del click // trova la riga e la colonna di $numero in $Q function trova_click($numero, $Q) { $riga_click = 0; $colonna_click = 0; for ($riga=0; $riga<4; $riga++) { for ($colonna=0; $colonna<4; $colonna++) { if ($numero==$Q[$riga][$colonna]) { $riga_click = $riga; $colonna_click = $colonna; } } } return array($riga_click, $colonna_click); } // controlla la validità della mossa // e scambia le tessere function muovi($r, $c, &$Q) { if ($c<3 && $Q[$r][$c+1]==0) { // al posto della tessera vuota metto la tessera cliccata $Q[$r][$c+1] = $Q[$r][$c]; // al posto del click metto la tessera vuota $Q[$r][$c] = 0; } elseif ($c>0 && $Q[$r][$c-1]==0) { // al posto della tessera vuota metto la tessera cliccata $Q[$r][$c-1] = $Q[$r][$c]; // al posto del click metto la tessera vuota $Q[$r][$c] = 0; } elseif ($r<3 && $Q[$r+1][$c]==0) { // al posto della tessera vuota metto la tessera cliccata $Q[$r+1][$c] = $Q[$r][$c]; // al posto del click metto la tessera vuota $Q[$r][$c] = 0; } elseif ($r>0 && $Q[$r-1][$c]==0) { // al posto della tessera vuota metto la tessera cliccata $Q[$r-1][$c] = $Q[$r][$c]; // al posto del click metto la tessera vuota $Q[$r][$c] = 0; } } function vittoria($Q) { if ( $Q[0][0]==1 && $Q[0][1]==2 && $Q[0][2]==3 && $Q[0][3]==4 && $Q[1][0]==5 && $Q[1][1]==6 && $Q[1][2]==7 && $Q[1][3]==8 && $Q[2][0]==9 && $Q[2][1]==10 && $Q[2][2]==11 && $Q[2][3]==12 && $Q[3][0]==13 && $Q[3][1]==14 && $Q[3][2]==15 ) { echo "<br /><br /> Hai vinto !!! <br /><br />"; } } ?> <? // inizializzo il gioco $quadrato = primo_quadrato(); // trova posizione del click $posizioni = trova_click($_REQUEST["mossa"], $quadrato); $riga = $posizioni[0]; $colonna = $posizioni[1]; // scambia muovi($riga, $colonna, $quadrato); // stampa il quadrato dopo la mossa stampa($quadrato); // controlla vittoria vittoria($quadrato); // inizia da capo !! // mostrare il tempo trascorso fino alla vittoria ... // il quadrato iniziale deve essere casuale e non impostato a mano (shuffle) // l'impiccato ... ?> </body> </html>
bdd-infuma/2011/sedici.txt · Ultima modifica: 25/03/2011 alle 16:33 (14 anni fa) da Dino Pedreschi