ok

img

Forza4


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();

Biografia

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.

facebook instagram youtube
HTML5 Template create by Cosimo Saccone 2022

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