Es ist nur der logische nächste Schritt, nach erfolgreichem Testen der CLI-Auswertungsmethode, auch ein Webinterface erstellen zu lassen. Hier zeigt sich, dass die KI nicht unbedingt immer gleich versteht, was man von ihr möchte. Es hat etwas gedauert, ehe ich Eingabefelder für die gewürfelten Werte bekam und auch das Design zieht sich nicht zu 100% bis zum Ende – das Endergebnis wird nahezu unformatiert wiedergegeben, aber das ist mir egal, solange der Rest bloß funzt.
<?php
session_start();
if (!isset($_SESSION['step'])) {
$_SESSION['step'] = 1;
$_SESSION['players'] = [];
$_SESSION['scores'] = [];
$_SESSION['current_player'] = 0;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_SESSION['step'] == 1) {
$_SESSION['player_count'] = intval($_POST['player_count']);
$_SESSION['step'] = 2;
} elseif ($_SESSION['step'] == 2) {
for ($i = 0; $i < $_SESSION['player_count']; $i++) {
$_SESSION['players'][$i] = $_POST['player_' . ($i + 1)];
$_SESSION['scores'][$i] = 0;
}
$_SESSION['step'] = 3;
} elseif ($_SESSION['step'] == 3) {
$roll = intval($_POST['roll']);
$player_index = $_SESSION['current_player'];
$_SESSION['scores'][$player_index] += $roll;
if ($_SESSION['scores'][$player_index] >= 10000) {
echo "<div class='result-container'><h2>{$_SESSION['players'][$player_index]} hat das Spiel gewonnen mit {$_SESSION['scores'][$player_index]} Punkten!</h2>";
echo "<h3>Endergebnisse:</h3><ul class='score-list'>";
foreach ($_SESSION['players'] as $index => $player) {
echo "<li>$player: {$_SESSION['scores'][$index]} Punkte</li>";
}
echo "</ul></div>";
session_destroy();
exit;
}
$_SESSION['current_player'] = ($player_index + 1) % $_SESSION['player_count'];
echo "<div class='score-container'><h3>Zwischenstand:</h3><ul class='score-list'>";
foreach ($_SESSION['players'] as $index => $player) {
echo "<li>$player: {$_SESSION['scores'][$index]} Punkte</li>";
}
echo "</ul></div>";
}
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Würfelspiel</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #222;
color: #dd3333;
text-align: center;
padding: 20px;
}
h2, h3 {
color: #ffffff;
}
form {
background-color: #333;
padding: 15px;
border-radius: 10px;
display: inline-block;
}
input {
padding: 10px;
margin: 5px;
border-radius: 5px;
border: none;
}
input[type="number"], input[type="text"] {
width: 80%;
max-width: 300px;
}
input[type="submit"] {
background-color: #dd3333;
color: #222;
cursor: pointer;
font-weight: bold;
}
ul {
list-style-type: none;
padding: 0;
}
.score-list li, .result-container li {
background-color: #444;
margin: 5px;
padding: 10px;
border-radius: 5px;
color: #ffffff;
}
.result-container, .score-container {
background-color: #333;
color: #ffffff;
padding: 20px;
border-radius: 10px;
margin-top: 20px;
}
</style>
</head>
<body>
<?php
if ($_SESSION['step'] == 1) {
echo '<form method="POST">';
echo 'Anzahl der Spieler: <input type="number" name="player_count" required><br>';
echo '<input type="submit" value="Weiter">';
echo '</form>';
} elseif ($_SESSION['step'] == 2) {
echo '<form method="POST">';
for ($i = 1; $i <= $_SESSION['player_count']; $i++) {
echo "Spieler $i: <input type='text' name='player_$i' required><br>";
}
echo '<input type="submit" value="Spiel starten">';
echo '</form>';
} elseif ($_SESSION['step'] == 3) {
$current_player_name = $_SESSION['players'][$_SESSION['current_player']];
echo "<h2>$current_player_name ist am Zug</h2>";
echo '<form method="POST">';
echo 'Gewürfelter Wert: <input type="number" name="roll" required><br>';
echo '<input type="submit" value="Bestätigen">';
echo '</form>';
}
?>
</body>
</html>