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