class Forza4 { public function __construct() { //session_start(); header("Refresh: 5"); $_SESSION["columns"] = 7; $_SESSION["rows"] = 6; $_SESSION["length"] = 4; if(!isset($_SESSION["number"])) { $_SESSION["number"] = $_GET["pl"]; } $this->init(); } private function init() { if(isset($_GET["col"])) { $this->move($_GET["col"]); header("Location: ".$_SERVER["PHP_SELF"]."?pl=".$_SESSION["number"]); } else if(isset($_GET["reset"])) { $this->reset(); header("Location: ".$_SERVER["PHP_SELF"]."?pl=".$_SESSION["number"]); } $this->render(); } private function move($column) { $s = file_get_contents("matrix.txt"); if($s[$column] == "0") { $h = false; $i = $column; $T = ($_SESSION["columns"] + 1) * $_SESSION["rows"]; while(!$h) { if($s[$i] != "0") { $h = true; } else { $i += $_SESSION["columns"] + 1; if($i > $T - 1) { $h = true; } } } $i -= $_SESSION["columns"] + 1; $s[$i] = $s[$T - 1]; if($s[$T - 1] == "1") { $s[$T - 1] = "2"; } else { $s[$T - 1] = "1"; } file_put_contents("matrix.txt", $s); } } private function reset() { $s = ""; $t = ($_SESSION["columns"] + 1) * $_SESSION["rows"]; for($i = 0; $i < $t; $i++) { if($i % ($_SESSION["columns"] + 1) == $_SESSION["columns"]) { $s .= "\n"; } else { $s .= "0"; } } $s[$t - 1] = "1"; file_put_contents("matrix.txt", $s); } private function checkWin() { $s = file_get_contents("matrix.txt"); $c = array(0, $_SESSION["rows"], 0, $_SESSION["columns"] + 1 - $_SESSION["length"], 0, $_SESSION["rows"] + 1 - $_SESSION["length"], 0, $_SESSION["columns"], 0, $_SESSION["rows"] + 1 - $_SESSION["length"], 0, $_SESSION["columns"] + 1 - $_SESSION["length"], 0, $_SESSION["rows"] + 1 - $_SESSION["length"], $_SESSION["length"] - 1, $_SESSION["columns"] + 1); $u1 = ""; $u2 = ""; $u = array($u1, $u2); for($i = 0; $i < $_SESSION["length"]; $i++) { $u[0] .= "1"; $u[1] .= "2"; } for($g = 0; $g < 4; $g++) { $h = false; for($y = $c[$g * 4]; $y < $c[$g * 4 + 1] && !$h; $y++) { for($x = $c[$g * 4 + 2]; $x < $c[$g * 4 + 3] && !$h; $x++) { $i = $y * ($_SESSION["columns"] + 1) + $x; $t = ""; for($l = 0; $l < $_SESSION["length"]; $l++) { $d = array($i + $l, $i + $l * ($_SESSION["columns"] + 1), $i + $l * ($_SESSION["columns"] + 1) + $l, $i + $l * ($_SESSION["columns"] + 1) - $l); $t .= $s[$d[$g]]; } for($p = 0; $p < 2; $p++) { if($t == $u[$p]) { print"<div style=\"text-align:center; width:100%; background-color:#0ff;\">"; if($_SESSION["number"] == $p + 1) { print"hai vinto"; } else { print"hai perso"; } print"</div>\n"; } } } } } } private function render() { $s = file_get_contents("matrix.txt"); $T = ($_SESSION["columns"] + 1) * $_SESSION["rows"]; $c = array("#fff", "#f00", "#ff0"); print"<html>\n<body style=\"margin:0; padding:0;\">\n"; $t = ""; if($s[$T - 1] == $_SESSION["number"]) { $t = ""; print"<div style=\"background-color:#0f0; text-align:center;\">è il tuo turno</div>\n"; } else { $t = "disabled"; print"<div style=\"background-color:#f00; text-align:center;\">è il turno dell'avversario</div>\n"; } print"<form style=\"margin:0 auto; width:".($_SESSION["columns"] * 100)."px; height:".($_SESSION["rows"] * 100)."px; background-color:#00f;\" action=\"Forza4.php\" mathod=\"GET\">\n"; print"<input type=\"hidden\" name=\"pl\" value=\"".$_SESSION["number"]."\">\n"; for($j = 0; $j < $_SESSION["rows"]; $j++) { for($k = 0; $k < $_SESSION["columns"]; $k++) { print"<input style=\"margin:5px; float: left; width:90px; height:90px; border-radius:50%; border:0; color:".$c[$s[($_SESSION["columns"] + 1) * $j + $k]]."; background-color:".$c[$s[($_SESSION["columns"] + 1) * $j + $k]]."\" type=\"submit\" name=\"col\" value=\"".$k."\" ".$t.">\n"; } } print"</form>\n"; print"<form style=\"margin:0 auto; width:".($_SESSION["columns"] * 100)."px;\" action=\"Forza4.php\" method=\"GET\">\n"; print"<input style=\"width:200px; height:50px;\" type=\"submit\" name=\"reset\" value=\"reset\">\n"; print"</form>\n"; $this->checkWin(); print"</body>\n</html>"; } } $c = new Forza4();
Mi chiamo Cosimo Saccone e sono un programmatore napoletano di 44 anni con oltre 35 anni di esperienza nella programmazione (BASIC, Assembly). Realizzo progetti e programmi utilizzando i principali e più diffusi linguaggi (C, C++, PHP, Javascript, HTML) e software per la grafica (Photoshop, Illustrator, 3dsMax). Anche se la grafica rappresenta il mio principale settore di interesse, non disdegno il lavoro di back-end e di organizzazione dati e sono attento agli aspetti di efficienza e di risparmio delle risorse tipica della programmazione di basso livello (specie nel settore della grafica 3d). Realizzo siti internet, applicativi desktop e servizi di vario tipo. Ho una buona conoscenza della libreria OpenGL per lo sviluppo di applicazioni 3d interattive in C/C++. Cerco di adottare uno stile di programmazione fortemente ordinato e modulare. Possiedo, inoltre, una buona capacità di elaborazione della documentazione. Ho vari hobbies tra cui la pittura, la ginnastica e le lunghe passeggiate in solitudine.
Al fine di migliorare l’esperienza di navigazione sul nostro sito noi di cosimosaccone.com e i nostri partner selezionati elaboriamo i dati personali, compreso l’indirizzo IP e le pagine visitate, in relazione alla tua navigazione nei contenuti del sito, per i seguenti scopi:
Accesso alle informazioni
Dati precisi di geolocalizzazione
Misurazione del pubblico
Pubblicità e contenuti personalizzati
Ti ricordiamo che il termine cookie si riferisce a una porzione di dati inviati al tuo browser da un web server. Il cookie viene memorizzato sul tuo dispositivo e riconosciuto dal sito web che lo ha inviato in ogni navigazione successiva. Se vuoi saperne di più e compiere una scelta diversa, come il rifiuto del trattamento dei tuoi dati personali, clicca qui sulla nostra privacy policy. Potrai sempre modificare le tue scelte e impostare i singolo cookies selezionando il bottone qui sotto.
OK