ich muss gerade für die Schule nen "Einarmigen Banditen" mit PHP programmieren.
Klappt soweit auch ganz gut, man kanns bestimmt viel kürzer und übersichtlicher schreiben aber hauptsache es funktioniert erst mal

Das Ziel ist es, wenn 3 Bilder gleich sind, entweder Diagonal oder in einer waagerechten Reihe, dass man dann gewinnt. (Man gewinnt "mehr", wenn man 2 Reihen hat oder alle gleich oder 2 Diagonale usw.)
Das Problem jetzt ist nur, dass ab und zu (echt super selten), man die Meldung bekommt, man hätte 3 in einer Reihe oder so, obwohl es nur 2 Gleiche sind. Nur ich finde den Fehler nicht. Ist das einfach eine Art "Bug" in PHP oder, was ich für viel wahrscheinlicher halte, ein Fehler bei meinem Code.
Das Einze was sein könnte ist, dass er das Falsche anzeigt, wenn man z.B. 2 mal 2 gleiche Reihen hat (-> 1. und 2. Reihe gleich, als bsp.), das habe ich bis jetzt noch nicht ausprobiert. Aber das kann doch eigentlich nicht der Grund dafür sein, dass er bei 2 Gleichen sagt es seien 3.
Hier mal der Code:
Code: Alles auswählen
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php
$feld[0] = rand(1, 9);
$feld[1] = rand(1, 9);
$feld[2] = rand(1, 9);
$feld[3] = rand(1, 9);
$feld[4] = rand(1, 9);
$feld[5] = rand(1, 9);
$feld[6] = rand(1, 9);
$feld[7] = rand(1, 9);
$feld[8] = rand(1, 9);
# gewinne:
# Reihe / Diagonal = Sieg
# 2 Diagonal / 2 Reihen = Doppel Sieg
# 2 Diagonal + 1 Reihe / 2 Reihen + 1 Diagonal = Dreifach Sieg
# Alle = Jackpot
# Texte bei Gewinn:
$Sieg_R = "SIEG! Du hast 3 Gleiche in einer Reihe!"; # done
$Sieg_D = "SIEG! Du hast 3 Gleiche diagonal!"; # done
$D_Sieg_R = "DOPPEL SIEG!! Du hast 2 mal 3 Gleiche in einer Reihe!"; # done
$D_Sieg_D = "DOPPEL SIEG!! Du hast 2 mal 3 Gleiche diagonale!"; # done
$T_Sieg_2R = "DREIFACH SIEG!!! Du hast 2 mal 3 Gleiche in einer Reihe und 1 diagonales!";
$T_Sieg_2D = "DREIFACH SIEG!!! Du hast 2 Diagonale und einmal 3 Gleiche in einer Reihe!";
$Jackpot = "JACKPOT!!!!!!!!!";
# Variablen um zu überprüfen was für ein "Sieg" es ist:
$ReiheTOP = false;
$ReiheMID = false;
$ReiheBOT = false;
$DiaLR = false;
$DiaRL = false;
$DoppelReihe = false;
$DoppelDia = false;
for ($i = 0; $i < 3; $i++) {
Bilder($feld[$i]);
}
echo "<br>";
for ($i = 3; $i < 6; $i++) {
Bilder($feld[$i]);
}
echo "<br>";
for ($i = 6; $i < 9; $i++) {
Bilder($feld[$i]);
}
echo "<br>";
function Bilder($feld) {
switch ($feld):
case 1:
echo '<img src="http://www.kissenjunkie.de/wp-content/uploads/2015/12/Celeste-Kissen-grau-kleine-Sterne-300x300.jpg" width = "50px" height "50px">';
break;
case 2:
echo '<img src="http://geschenke-fuer-maenner.bernaunet.eu/wp-content/uploads/2015/10/kleiner-Schutzengel-300x300.jpg" width = "50px" height "50px>';
break;
case 3:
echo '<img src="http://opensource.org/files/osi_keyhole_300X300_90ppi.png" width = "50px" height "50px>';
break;
case 4:
echo '<img src="http://www.tierisch-gut-drauf.com/wp-content/uploads/sites/12/2015/07/kleiner-kratzbaum-300x300.jpg" width = "50px" height "50px>';
break;
case 5:
echo '<img src="http://www.cricketlife.net/wp-content/uploads/2015/12/fliesen-fr-kleine-bder-300x300.jpg" width = "50px" height "50px>';
break;
case 6:
echo '<img src="http://www.opticbits.com/wp-content/uploads/2015/12/sofas-fr-kleine-rume-300x300.jpg" width = "50px" height "50px>';
break;
case 7:
echo '<img src="http://www.febs.de/wp-content/uploads/2015/05/LinkedIn_logo_initials-300x300.png" width = "50px" height "50px>';
break;
case 8:
echo '<img src="http://kleinehilfsaktion.de/wp-content/uploads/2014/10/ausblick-kleine-hilfsaktion-300x300.jpg" width = "50px" height "50px>';
break;
case 9:
echo '<img src="http://www.opticbits.com/wp-content/uploads/2015/11/fliesen-ideen-kleine-badezimmer-300x300.jpg" width = "50px" height "50px>';
break;
endswitch;
}
# erste Reihe komplett gleich
if ($feld[0] == $feld[1]) {
if ($feld[1] == $feld[2]) {
echo $Sieg_R;
$ReiheTOP = true;
}
}
# zweite Reihe komplett gleich
if ($feld[3] == $feld[4]) {
if ($feld[4] == $feld[5]) {
echo $Sieg_R;
$ReiheMID = true;
}
}
# dritte Reihe komplett gleich
if ($feld[6] == $feld[7]) {
if ($feld[7] == $feld[8]) {
echo $Sieg_R;
$ReiheBOT = true;
}
}
# diagonal (links nach rechts)
if ($feld[0] == $feld[4]) {
if ($feld[4] == $feld[8]) {
echo $Sieg_D;
$DiaLR = true;
}
}
# diagonal (rechts nach links)
if ($feld[2] == $feld[4]) {
if ($feld[4] == $feld[6]) {
echo $Sieg_D;
$DiaRL = true;
}
}
# 2 GLeiche, oben, mitte
if ($ReiheTOP == true and $ReiheMID == true) {
echo $D_Sieg_R;
$DoppelReihe = true;
}
# 2 Gleiche, oben, unten
if ($ReiheTOP == true and $ReiheBOT == true) {
echo $D_Sieg_R;
$DoppelReihe = true;
}
# 2 Gleiche, mitte, unten
if ($ReiheMID == true and $ReiheBOT == true) {
echo $D_Sieg_R;
$DoppelReihe = true;
}
# 2 Gleiche, Diagonal
if ($DiaLR == true and $DiaRL == true) {
echo $D_Sieg_D;
$DoppelDia = true;
}
# 3 Gleiche, 2 Reihe + Dia l-r
if ($DoppelReihe == true and $DiaLR == true) {
echo $T_Sieg_2R;
}
# 3 Gleiche, 2 Reihe + Dia r-l
if ($DoppelReihe == true and $DiaRL == true) {
echo $T_Sieg_2R;
}
# 3 Gleiche, 2 Dia + Reihe, oben
if ($DoppelDia == true and $ReiheTOP == true) {
echo $T_Sieg_2D;
}
# 3 GLeiche, 2 Dia + Reihe, mitte
if ($DoppelDia == true and $ReiheMID == true) {
echo $T_Sieg_2D;
}
# 3 Gleiche, 2 Dia + Reihe, unten
if ($DoppelDia == true and $ReiheBOT == true) {
echo $T_Sieg_2D;
}
# Alle gleich
if ($DoppelReihe == true and $ReiheTOP == true || $DoppelReihe == true and $ReiheMID == true || $DoppelReihe == true and $ReiheBOT == true) {
echo $Jackpot;
}
?>
</body>
</html>
Hoffe ihr versteht was ich meine und könnt mir helfen.

Danke
MFG