Einleitung
Die Programmierung eines ✂️-Stein-Papier-Spiels bietet eine unterhaltsame Möglichkeit um grundlegende Programmierkenntnisse in PHP zu vertiefen. Dabei liegt der Fokus auf der Implementierung eines Best-of-Five-Systems, das ein strategisches Element hinzufügt. Zudem ist es erforderlich eine klare Zeitbegrenzung für die Entscheidungen der Spieler zu implementieren um den Druck zu erhöhen. Die Verwendung von Icons anstelle vonfür die Auswahl soll das Spiel zusätzlich auflockern und optisch ansprechend gestalten. Hier wird nun erläutert ebenso wie diese Funktionen in PHP realisiert werden können.
Umsetzung
Das grundlegende Spiel muss einige Aspekte berücksichtigen. Zuerst werden die Basisfunktionen definiert. Zusätzlich zu den Spieleraktionen sollte das System in der Lage sein die Punkte zu erfassen und den Gewinner zu überprüfen. Nachfolgend zeigen wir einen Beispielcode der diese Elemente enthält.
```php
<?php
session_start();
// Icons für Schere, Stein und Papier
$icons = array(
'scissors' => 'Schere Icon',
'rock' => 'Stein Icon',
'paper' => 'Papier Icon'
);
// Überprüfung der Auswahl des Spielers und des Computers
function playGame($playerChoice) {
$choices = array('scissors', 'rock', 'paper');
$computerChoice = $choices[array_rand($choices)];
// Best-of-Five-System
$_SESSION['playerScore'] = isset($_SESSION['playerScore']) ? $_SESSION['playerScore'] : 0;
$_SESSION['computerScore'] = isset($_SESSION['computerScore']) ? $_SESSION['computerScore'] : 0;
if (($playerChoice == 'scissors' && $computerChoice == 'paper') ||
($playerChoice == 'rock' && $computerChoice == 'scissors') ||
($playerChoice == 'paper' && $computerChoice == 'rock')) {
$_SESSION['playerScore']++;
echo "Du gewinnst diese Runde! $playerChoice schlägt $computerChoice.";
} elseif (($playerChoice == 'scissors' && $computerChoice == 'rock') ||
($playerChoice == 'rock' && $computerChoice == 'paper') ||
($playerChoice == 'paper' && $computerChoice == 'scissors')) {
$_SESSION['computerScore']++;
echo "Du verlierst diese Runde! $computerChoice schlägt $playerChoice.";
} else {
echo "Unentschieden! Du und der 💻 haben $playerChoice gewählt.";
}
// Siegüberprüfung im Best-of-Five-System
if ($_SESSION['playerScore'] >= 3) {
echo "Herzlichen Glückwunsch, du hast das Spiel gewonnen!";
resetScores();
} elseif ($_SESSION['computerScore'] >= 3) {
echo "Schade, du hast das Spiel verloren!";
resetScores();
}
}
// Zurücksetzen der Spielstände
function resetScores() {
$_SESSION['playerScore'] = 0;
$_SESSION['computerScore'] = 0;
}
// Überprüfung der Antwortzeit
function checkTimeout() {
echo "Zeit abgelaufen! Du hast nicht rechtzeitig geantwortet.";
}
if (isset($_GET['choice'])) {
$playerChoice = $_GET['choice'];
// Überprüfung der Antwortzeit
if (isset($_SESSION['timeout'])) {
if ($_SESSION['timeout'] < time()) {
checkTimeout();
unset($_SESSION['timeout']);
exit;
}
}
// Spielablauf
playGame($playerChoice);
// Setzen der Antwortzeit für die nächste Runde
$_SESSION['timeout'] = time() + 20;
}
?>
<!DOCTYPE html>
<html>
<head>
<>Schere, Stein, Papier</>
</head>
<body>
<h1>Schere, Stein, Papier</h1>
<h2>Deine Wahl:</h2>
<ul>
<?php foreach ($icons as $choice => $icon): ?>
<li><a href="?choice=<?php echo $choice; ?>"><?php echo $icon; ?></a></li>
<?php endforeach; ?>
</ul>
</body>
</html>
```
Codeerklärung
Der obige Code implementiert ein einfaches Schere-Stein-Papier-Spiel. Der Session-Speicher erfasst die Punkte sowie für den Spieler als ebenfalls für den Computer. Das Spielsystem verfolgt die Punktestände über die Runden hinweg ´ und der Spieler muss drei Runden gewinnen ` um zu siegen. Die Überprüfung der Antwortzeit erfolgt durch eine Session-Variable die sicherstellt, dass der Spieler innerhalb von 20 Sekunden eine Auswahl trifft.
Icons und Benutzeroberfläche
Die Verwendung von Icons anstelle vonmacht das Spiel visuell ansprechender. Die Icons werden als Links dargestellt die den Spielern die Auswahl erleichtern. Diese Methodik führt zu einem intuitiven Gameplay das durch grafische Darstellung besticht.
Fazit
Insgesamt wird durch diesen Ansatz ein dynamisches und spannendes Spielerlebnis geschaffen. Die Kombination aus Spielmechanik – zeitlichen Anforderungen und visuellen Elementen fördert sowohl den Spielfluss als auch die Interaktivität. Programmierende die an PHP interessiert sind, können mit diesem Basiscode ein unterhaltsames Schere-Stein-Papier-Spiel erstellen und bei Bedarf weiter optimieren oder anpassen.