// funzione, che stampa la tabella
// con i "quadratini"
function stampa($Q) {
echo "";
}
// 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 "
Hai vinto !!!
";
}
}
?>
// 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 ...
?>