Hallöchen 
Im Informatik-Unterricht hat jeder von uns ein Projekt bekommen, welches derjenige machen soll.
Ich habe Reversi (Othello) bekommen bzw. "gewählt".
(Falls jemand nicht weiß, was es ist -> klick)
Die Aufgabe ist, ein Spiel (in meinem Fall Reversi) in PHP zu programmieren. Dabei kann auf Datenbanken und auf andere "Hilfsmittel" (JavaScript, AJAX, ...) zurückgegriffen werden.
Soweit hat auch alles funktioniert.
Ich bin jetzt so weit, dass man Steine platzieren kann und die Position der Steine wird in der Datenbank gespeichert.
Die eigentlich Spielfunktion fehlt mir also noch.
Dabei geht es jetzt darum,
a) dass die umschlossenen, gegnerischen Steine umgedreht werden und
b) dass man Steine nur setzen kann, wenn ein gegnerischer umschlossen wird. (Siehe Spiel-Beispiel oben im Link)
Das Problem liegt bei mir eher in der Bedingung, wann Steine umgedreht werden sollen, als an dem (automatischen) Umdrehen.
Das Umdrehen kann man mit ner simplen SQL UPDATE-Query lösen.
Wie kann ich bestimmen, wann Steine umgedreht werden?
Mein bisheriger Quelltext sieht so aus:
Hoffentlich versteht ihr, was ich meine 
Danke schonmal im Vorraus.
MfG

Im Informatik-Unterricht hat jeder von uns ein Projekt bekommen, welches derjenige machen soll.
Ich habe Reversi (Othello) bekommen bzw. "gewählt".
(Falls jemand nicht weiß, was es ist -> klick)
Die Aufgabe ist, ein Spiel (in meinem Fall Reversi) in PHP zu programmieren. Dabei kann auf Datenbanken und auf andere "Hilfsmittel" (JavaScript, AJAX, ...) zurückgegriffen werden.
Soweit hat auch alles funktioniert.
Ich bin jetzt so weit, dass man Steine platzieren kann und die Position der Steine wird in der Datenbank gespeichert.
Die eigentlich Spielfunktion fehlt mir also noch.
Dabei geht es jetzt darum,
a) dass die umschlossenen, gegnerischen Steine umgedreht werden und
b) dass man Steine nur setzen kann, wenn ein gegnerischer umschlossen wird. (Siehe Spiel-Beispiel oben im Link)
Das Problem liegt bei mir eher in der Bedingung, wann Steine umgedreht werden sollen, als an dem (automatischen) Umdrehen.
Das Umdrehen kann man mit ner simplen SQL UPDATE-Query lösen.
Wie kann ich bestimmen, wann Steine umgedreht werden?
Mein bisheriger Quelltext sieht so aus:
PHP-Code:
// [...]
if (isset($_SESSION['userid'])) {
################### Anwendung starten ###################
## User bestimmen ##
$DB_User_Text2 = "SELECT Name FROM users WHERE id='".$_SESSION['userid']."'";
$DB_User_Name = mysql_query($DB_User_Text2);
$username = mysql_result($DB_User_Name, 0);
## Menüleiste ##
echo "
<div style='margin:0 auto;'>
<table style='font-size:11px;'>
<tr>
<td>Angemeldet als <u>$username</u>.</td>
<td><button style='background-color:$bgcolor;border:0px;' onclick='document.home.submit();'><img src='img/home.png' style='width:25px;height:25px;'></button>";
if(isset($_POST['play'])) {
echo "<button style='background-color:$bgcolor;border:0px;' onclick='document.neues_spiel.submit();'><img src='img/newgame.png' style='width:25px;height:25px;'></button>";
} else {
echo "<button style='background-color:$bgcolor;border:0px;' onclick='document.playform.submit();'><img src='img/play.png' style='width:25px;height:25px;'></button>";
}
echo "<button style='background-color:$bgcolor;border:0px;' onclick='document.profilform.submit();'><img src='img/profile.png' style='width:25px;height:25px;'></button><button style='background-color:$bgcolor;border:0px;' onclick='document.logoutform.submit();'><img src='img/logout.png' style='width:25px;height:25px;'></button>
</td>
</tr>
</table>";
## Neues Spiel ##
echo "
<form method='post' action='index.php' name='neues_spiel'>
<input type='hidden' name='newgame' value='1'>
<input type='hidden' name='spielen' value=''>
<input type='hidden' name='play' value=''>
</form>";
## Play ##
echo "
<form method='post' action='index.php' name='playform'>
<input type='hidden' name='newgame' value='1'>
<input type='hidden' name='spielen' value=''>
<input type='hidden' name='play' value=''>
</form>";
## Home ##
echo "
<form method='post' action='index.php' name='home'>
<input type='hidden' name='home' value=''>
</form>";
## Profil ##
echo "
<form method='post' action='index.php' name='profilform'>
<input type='hidden' name='profil' value='1'>
</form>";
## Logout ##
echo "
<form method='post' action='index.php' name='logoutform'>
<input type='hidden' name='logout' value='1'>
</form>";
## Neues Spiel (Tabelle löschen) ##
if(isset($_POST['newgame'])) {
$deltext = "DELETE FROM felder";
$del = mysql_query($deltext);
mysql_query("INSERT INTO felder (FeldX, FeldY, Spieler) VALUES ('4','4', '2'), ('5','4', '1'), ('5','5', '2'), ('4','5', '1')");
}
## Spielfeld generieren ##
function Spielfeld() {
$table_border_color = "green";
$bgcolor = "#002200";
$DB_FeldX = "";
$DB_FeldY = "";
$DB_Spieler = "";
$spieler2 = "";
if(isset($_POST['spieler_wert'])) {
$spieler_wert = $_POST['spieler_wert'];
} elseif(!isset($spieler_wert)) {
$spieler_wert = "1";
}
if($spieler_wert=="1") {
$spieler_wert++;
} elseif ($spieler_wert=="2") {
$spieler_wert--;
}
echo "<table border='0'>";
for($y=1; $y<=8; $y++)
{
echo "<tr>";
for($x=1; $x<=8; $x++)
{
$abfrage = "SELECT * FROM felder WHERE FeldX = '$x' AND FeldY = '$y'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$DB_FeldX=$row["FeldX"];
$DB_FeldY=$row["FeldY"];
$DB_Spieler=$row["Spieler"];
}
echo "
<form method='post' id='feldklick' name='feldklick' action='index.php'>
<td name='$x.$y' align='center' valign='middle' style='border:1px solid $table_border_color;width:50px;height:50px;'>
<input type='hidden' name='spielen' value=''>
<input type='hidden' name='play' value=''>
<input type='hidden' name='spieler_wert' value='$spieler_wert'>
<input type='hidden' name='FeldX' value='$x'>
<input type='hidden' name='FeldY' value='$y'>";
##
if($x=="$DB_FeldX" && $y=="$DB_FeldY") {
if($DB_Spieler=="1") {
$spieler2 = "rot";
} elseif($DB_Spieler=="2") {
$spieler2 = "weiß";
}
echo "<img src='img/$spieler2.png' style='width:50px;height:50px;'>";
} else {
echo "<input style='width:50px;height:50px;background-color:$bgcolor;border:0px;' name='absenden' type='button' value='' onclick='this.form.submit();'>";
}
##
echo "</td>
</form>";
}
echo "</tr>";
}
echo "</table>";
}
## Wenn angeklickt, Feld-Werte in die DB eintragen ##
if(isset($_POST['FeldX']) && ($_POST['FeldY'])) {
$FeldX = $_POST['FeldX'];
$FeldY = $_POST['FeldY'];
$spieler = $_POST["spieler_wert"];
mysql_query("INSERT INTO felder (FeldX, FeldY, Spieler) VALUES ('$FeldX','$FeldY', '$spieler')");
## Ausgabe als Test
##echo "$FeldX $FeldY <br>";
}
function Profil() {
echo "<style type='text/css'>
.herv {
background-color:#003300;
}
</style>";
## Werte auslesen ##
$email = "";
$icq = "";
$DB_User_Name = mysql_query("SELECT Name FROM users WHERE id='".$_SESSION['userid']."'");
$username = mysql_result($DB_User_Name, 0);
$DB_Email = mysql_query("SELECT Email FROM users WHERE id='".$_SESSION['userid']."'");
$email = mysql_result($DB_Email, 0);
$DB_ICQ = mysql_query("SELECT ICQ FROM users WHERE id='".$_SESSION['userid']."'");
$icq2 = mysql_result($DB_ICQ, 0);
if($icq2=="0") {
$icq = "";
} else {
$icq = $icq2;
}
echo "
<h2>Profil bearbeiten</h1>";
if(isset($_POST["profile_edit"])) {
echo "<img src='img/success.png'> Profildaten erfolgreich geändert<br><br>";
}
echo "
<form method='post' action='index.php' name='profil_editform'>
<table style='border:1px solid green;'>
<tr>
<td style='width:150px;'>Benutzername</td>
<td style='width:150px;'>$username</td>
</tr>
<tr class='herv'>
<td style='width:150px;'>E-Mail</td>
<td style='width:150px;'><input type='text' name='profil_email' value='$email' size='22' /></td>
</tr>
<tr>
<td style='width:150px;'>ICQ</td>
<td style='width:150px;'><input type='text' name='profil_icq' value='$icq' size='22' /></td>
</tr>
<tr>
<td style='width:150px;'> </td>
<td align='right' style='width:150px;'><input type='submit' value='absenden' /></td>
</tr>
</table>
<input type='hidden' name='profile_edit' value='' />
<input type='hidden' name='profil' value='' />
</form>";
}
if(isset($_POST["profile_edit"])) {
$icq = $_POST["profil_icq"];
$email = $_POST["profil_email"];
mysql_query("UPDATE users SET Email='".$email."', ICQ='".$icq."' WHERE ID='".$_SESSION["userid"]."'");
}
function logout() {
session_destroy();
echo "<meta http-equiv='Refresh' content='0 url=index.php'>";
}
if (isset($_POST['logout'])) {
logout();
}
## Startseite nach Login ##
if(isset($_POST["spielen"])) {
Spielfeld();
} elseif(isset($_POST["profil"])) {
Profil();
} else {
echo "
<h2>Willkommen bei Reversi</h2>";
}
echo "
</div>";
} else {
// [...]
Danke schonmal im Vorraus.
MfG

Kommentar