From 5f7be59b6d2a1c2695ef8eea2a867c1f77d9256c Mon Sep 17 00:00:00 2001 From: Selim Eser <2211482@stud.hs-mannheim.de> Date: Fri, 3 Jan 2025 19:59:39 +0100 Subject: [PATCH] Initial commit --- .DS_Store | Bin 0 -> 6148 bytes 4GEWINNT.php | 319 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 319 insertions(+) create mode 100644 .DS_Store create mode 100644 4GEWINNT.php diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..31d933faba17f5cb6e486115f277eadbd8acaec3 GIT binary patch literal 6148 zcmeHKJxc>o5S-N%0WDHmzF!a!`~lC9AZctAY$aM)1d_)7Du0*%OlLn3j?+f4k=d|2 z@9pi}%S~~63&2*d&zHagz?|-gHxE+Tafsf-cnyvG)|{M}=TC2BWu4Ga`3P=GdAO)nrZxry}OPil1DoOzSz*Fj;3c1(izv#v=4)Q>g+pS{nGZTq9|Nw7ObYz90-q2j8rA>+ literal 0 HcmV?d00001 diff --git a/4GEWINNT.php b/4GEWINNT.php new file mode 100644 index 0000000..429603c --- /dev/null +++ b/4GEWINNT.php @@ -0,0 +1,319 @@ +↻'; + $_SESSION["message"] = ""; + unset($_SESSION["winningchip"]); + fillboard(); +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['selection'])) { + $_SESSION["gamemode"] = (int) $_POST['selection']; + $_SESSION["currentplayer"] = "red"; + $_SESSION["playcounter"] = 0; + $_SESSION["restart"] = ''; + $_SESSION["message"] = ""; + fillboard(); +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['menu'])) { + unset($_SESSION["gamemode"]); + unset($_SESSION["currentplayer"]); + unset($_SESSION["playcounter"]); + unset($_SESSION["restart"]); + unset($_SESSION["message"]); + unset($_SESSION["board"]); + unset($_SESSION["winningchip"]); +} + +function fillboard(){ + for ($row = 0; $row < 6; $row++) { + for ($col = 0; $col < 7; $col++) { + $_SESSION["board"][$row][$col] = "white"; + } + } +} + +function gamelogic(){ + if ($_SESSION["restart"] === '') { + if ($_SESSION["gamemode"] === 1) { + for ($i = 0; $i <= 1; $i++) { + if ($i === 0) { + $playerchoice = (int) $_POST['choice']; + } else { + $playerchoice = botturn(); + } + + $placemem = placechip($playerchoice); + $currentplayermem = currentplayerger(); + $_SESSION["message"] = $placemem[0] ? "" : "Spalte ist schon voll!"; + + if (!($_SESSION["message"] === "")) { + break; + } + + $_SESSION["playcounter"]++; + + if ($currentplayermem === "Gelb") { + $_SESSION["message"] = checkwin($placemem[1], $playerchoice) ? "Roboter " + . $currentplayermem + . " hat gewonnen!" : ""; + } else { + $_SESSION["message"] = checkwin($placemem[1], $playerchoice) ? "Spieler " + . $currentplayermem + . " hat gewonnen!" : ""; + } + + swapplayer(); + + if ( + $_SESSION["message"] === "Spieler " + . $currentplayermem + . " hat gewonnen!" || + $_SESSION["message"] === "Roboter " + . $currentplayermem + . " hat gewonnen!" + ) { + $_SESSION["restart"] = ''; + $_SESSION["winningchip"] = [$placemem[1], $playerchoice]; + break; + } + + $_SESSION["message"] = $_SESSION["playcounter"] === 42 ? "Unentschieden!" : ""; + + if ($_SESSION["message"] === "Unentschieden!") { + $_SESSION["restart"] = ''; + break; + } + } + + } else { + + $playerchoice = (int) $_POST['choice']; + $placemem = placechip($playerchoice); + $currentplayermem = currentplayerger(); + $_SESSION["message"] = $placemem[0] ? "" : "Spalte ist schon voll!"; + + if (!($_SESSION["message"] === "")) { + return; + } + + $_SESSION["playcounter"]++; + + $_SESSION["message"] = checkwin($placemem[1], $playerchoice) ? "Spieler " + . $currentplayermem + . " hat gewonnen!" : ""; + + swapplayer(); + + if ( + $_SESSION["message"] === "Spieler " + . $currentplayermem + . " hat gewonnen!" + ) { + $_SESSION["restart"] = ''; + $_SESSION["winningchip"] = [$placemem[1], $playerchoice]; + return; + } + + $_SESSION["message"] = $_SESSION["playcounter"] === 42 ? "Unentschieden!" : ""; + + if ($_SESSION["message"] === "Unentschieden!") { + $_SESSION["restart"] = ''; + } + + } + } +} + +function placechip($col){ + for ($row = 6; $row >= 0; $row--) { + if ($_SESSION["board"][$row][$col] === "white") { + $_SESSION["board"][$row][$col] = $_SESSION["currentplayer"]; + return [true, $row]; + } + } + return false; +} + +function checkwin($row, $col){ + return $_SESSION["board"][$row][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 1][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 2][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 3][$col] === $_SESSION["currentplayer"] || + $_SESSION["board"][$row][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 1][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 2][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 3][$col] === $_SESSION["currentplayer"] || + $_SESSION["board"][$row][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row][$col + 1] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row][$col + 2] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row][$col + 3] === $_SESSION["currentplayer"] || + $_SESSION["board"][$row][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row][$col - 1] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row][$col - 2] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row][$col - 3] === $_SESSION["currentplayer"] || + $_SESSION["board"][$row][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 1][$col + 1] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 2][$col + 2] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 3][$col + 3] === $_SESSION["currentplayer"] || + $_SESSION["board"][$row][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 1][$col - 1] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 2][$col - 2] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 3][$col - 3] === $_SESSION["currentplayer"] || + $_SESSION["board"][$row][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 1][$col - 1] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 2][$col - 2] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row + 3][$col - 3] === $_SESSION["currentplayer"] || + $_SESSION["board"][$row][$col] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 1][$col + 1] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 2][$col + 2] === $_SESSION["currentplayer"] + && $_SESSION["board"][$row - 3][$col + 3] === $_SESSION["currentplayer"] ? true : false; + +} + +function swapplayer(){ + $_SESSION["currentplayer"] = $_SESSION["currentplayer"] === "red" ? "yellow" : "red"; +} + +function currentplayerger(){ + return $_SESSION["currentplayer"] === "red" ? "Rot" : "Gelb"; +} + +function botturn(){ + while (true) { + $mem = random_int(0, 6); + if ($_SESSION["board"][0][$mem] === "white") { + return $mem; + } + } +} + +?> + + + + + + + + 4-GEWINNT + + + + +

4-GEWINNT

+
+
+ 1 Spieler' + . ''; + } + + if (isset($_SESSION["gamemode"])) { + for ($row = 0; $row < 6; $row++) { + for ($col = 0; $col < 7; $col++) { + if ($row === 0 && !(isset($_SESSION["winningchip"]))) { + echo ''; + } else if (isset($_SESSION["winningchip"]) && $_SESSION["winningchip"][0] === $row && $_SESSION["winningchip"][1] === $col) { + echo ''; + } else { + echo ''; + } + + } + echo "
"; + } + echo "
" + . $_SESSION["restart"]; + echo ''; + } + ?> +
+
+

+ + + \ No newline at end of file