Strumenti Utente

Strumenti Sito


bdd-infuma:2011:sedici

Questa è una vecchia versione del documento!


<php>

<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> &nbsp; </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>

</php>

bdd-infuma/2011/sedici.1301070712.txt.gz · Ultima modifica: 25/03/2011 alle 16:31 (14 anni fa) da Dino Pedreschi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki