Hallo liebes Selfphp team,
ich versuche gerade ein Sudoku zu erstellen und hab bisslang auch alles geschaft. Jetz fehlen mir noch folgende Dinge:
- Ich bekomme schon ausgegeben in welcher Zeile und Spalte die Fehler sind und möchte diese jetzt rot färben und genau das falsche Kästchen dunkel rot.
- Ich möchte verhindern das der User die eingabe manipulieren kann (Da brauch ich eure Hilfe nicht das ist kein Problem)
-Das die neu eingegebenen Zahlen weiß bleiben (kein Problem aber) und sie da nach umschreibar sind (muss ich warsch meine Anfangsschleife umschreiben aber das sollte ich erst machen wenn ich Punkt 1 habe )
Hier mal mein PhP-Code:
PHP-Code:
<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sudoku</title>
<link rel="STYLESHEET" type="text/css" href="sudoku.css">
<script type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
function FensterOeffnen (Adresse) {
MeinFenster = window.open(Adresse, "Zweitfenster", "width=700,height=700,scrollbars=yes");
MeinFenster.focus();
}
</script>
<!------------------------------------- Anfang Tabellenerstellung ------------------------------------------->
<div id=sudoku>
<table width="266" height="117" border=0>
<tr>
<td><center>
<table width="266" height="117" border=0>
<tr>
<td><center>
<h1 class=sudoku>Sudoku</h1>
</center></td>
</tr>
<tr>
<td><center>
</center></td>
</tr>
<tr>
<td class="sudoku">
<?php
ini_set('memory_limit', '-1');
function getSudoku ()
{
$anzahl_benoetigter_zeichen = 162; //Anzahl der Zeichen
$inhalt_datei = "sudoku.txt"; //Die Zeichen aus der Datei in einer variablen speichern
$zeichen_dokument = filesize ($inhalt_datei); //Die Anzahl der Zeichen in der Variablen bestimmen
$moegliche_sudokus_z = $zeichen_dokument / $anzahl_benoetigter_zeichen; //Anzahl der möglichen Sudokus
$rand = rand(0, $moegliche_sudokus_z); //Zufällige Zahl aus .....
$handle = fopen ($inhalt_datei, "r"); //Öffnet den Inhalt und setzt Dateizeiger an den Anfang
$position_zeiger = $anzahl_benoetigter_zeichen * $rand; //Berechnet die Stelle für den Dateizeiger
fseek ($handle, $position_zeiger, SEEK_SET); //Platziert den Dateizeiger
$contents = fread ($handle, $anzahl_benoetigter_zeichen); //Holt die benötigten Zeichen für ein Sudoku
fclose ($handle);
return $contents;
}
$sudokustr = getSudoku ();
$sudoku = explode(";", $sudokustr);
$_SESSION['sudoku'] = $sudoku;
if (isset($_POST['sudoku']))
{
$_SESSION['sudoku'] = $_POST;
//var_dump ($_SESSION['sudoku']);
}
//var_dump($_SESSION['sudoku']);
echo "<form method=post>";
echo "<table cellspacing=0 cellpadding=1 border=0 bgcolor=#000000>";
$count = 0;
for ($zeile = 0; $zeile < 9; $zeile++)
{
echo "<tr>";
for ($kasten = 0; $kasten < 9; $kasten++)
{
echo "<td><div class=cell>";
$data = "";
if ($kasten == 2 || $kasten == 5) //Nach 2 und nach 5 Kästchen dicker Strich
{
$border = "border-right:2px solid #000000;";
} else {
$border = "";
$border = "";
}
if ($zeile == 2 || $zeile == 5) //Nach der 2ten und nach der 3ten dicker Unterstrich auf der ganzen Zeile
{
$border .= "border-bottom:2px solid #000000;";
}
if (intval($_SESSION['sudoku'][$count]) > 0 )
{
$data = "value='" . $_SESSION['sudoku'][$count] . "'readonly style='background:#6E6E6E; " . $border . "'";
} else {
$data = "style='" . $border . "'";
}
echo "\r\n<input valign=middle type=text id=i" . $count . " name=" . $count . " " . $data . " size=5 maxlength=1
class=cell onkeyup='fontsize(this, this.value)'>\r\n"; //überflüssiges entfernen
echo "</div></td>";
$count ++;
}
echo "</tr>";
}
echo "</table>";
echo "<input type='submit' value='OK' name='sudoku' >";
echo "</form>";
$array_pruefen = array(1,2,3,4,5,6,7,8,9);
//--------------------------Ende Tabellenerstellung----------------------------------------------------------------------
//------------------------------------Zeilen-----------------------------------------------------------------------------
$a = 0;
while ($a < 9 )
{
$zeilaaaa1[] = $_SESSION['sudoku'][$a];
$a++;
}
$b = 9;
while ($b < 18 )
{
$zeilaaaa2[] = $_SESSION['sudoku'][$b];
$b++;
}
$c = 18;
while ($c < 27 )
{
$zeilaaaa3[] = $_SESSION['sudoku'][$c];
$c++;
}
$d = 27;
while ($d < 36 )
{
$zeilaaaa4[] = $_SESSION['sudoku'][$d];
$d++;
}
$e = 36;
while ($e < 45 )
{
$zeilaaaa5[] = $_SESSION['sudoku'][$e];
$e++;
}
$f = 45;
while ($f < 54 )
{
$zeilaaaa6[] = $_SESSION['sudoku'][$f];
$f++;
}
$g = 54;
while ($g < 63 )
{
$zeilaaaa7[] = $_SESSION['sudoku'][$g];
$g++;
}
$h = 63;
while ($h < 72 )
{
$zeilaaaa8[] = $_SESSION['sudoku'][$h];
$h++;
}
$i = 72;
while ($i < 81 )
{
$zeilaaaa9[] = $_SESSION['sudoku'][$i];
$i++;
}
$zeilaaaa = array ($zeilaaaa1, $zeilaaaa2, $zeilaaaa3, $zeilaaaa4, $zeilaaaa5, $zeilaaaa6, $zeilaaaa7, $zeilaaaa8, $zeilaaaa9);
//--------------------------Ende Zeilen----------------------------------------------------------
//------------------------------Spalten----------------------------------------------------------
$aa = 0;
while ($aa < 73 )
{
$spalteeee1[] = $_SESSION['sudoku'][$aa];
$aa = $aa + 9;
}
$bb = 1;
while ($bb < 74 )
{
$spalteeee2[] = $_SESSION['sudoku'][$bb];
$bb = $bb + 9;
}
$cc = 2;
while ($cc < 76 )
{
$spalteeee3[] = $_SESSION['sudoku'][$cc];
$cc = $cc + 9;
}
$dd = 9;
while ($dd < 77 )
{
$spalteeee4[] = $_SESSION['sudoku'][$dd];
$dd = $dd + 9;
}
$ee = 4;
while ($ee < 78 )
{
$spalteeee5[] = $_SESSION['sudoku'][$ee];
$ee = $ee + 9;
}
$ff = 5;
while ($ff < 79 )
{
$spalteeee6[] = $_SESSION['sudoku'][$ff];
$ff = $ff + 9;
}
$gg = 6;
while ($gg < 80 )
{
$spalteeee7[] = $_SESSION['sudoku'][$gg];
$gg = $gg + 9;
}
$hh = 7;
while ($hh < 81 )
{
$spalteeee8[] = $_SESSION['sudoku'][$hh];
$hh = $hh + 9;
}
$ii = 8;
while ($ii < 82 )
{
$spalteeee9[] = $_SESSION['sudoku'][$ii];
$ii = $ii + 9;
}
$spalteeee = array ($spalteeee1, $spalteeee2, $spalteeee3, $spalteeee4, $spalteeee5, $spalteeee6, $spalteeee7, $spalteeee8, $spalteeee9);
//------------------------------Ende Spalte----------------------------------
//-----------------------------Überprüfungsarray-----------------------------
$array_pruefen = array(1,2,3,4,5,6,7,8,9);
//--------------------------Ende Überprüfungsarray---------------------------
//------------------------Zeilenprüfung--------------------------------------
$aaaa = 0 ;
while ($aaaa < 9)
{
$resultZ = array_diff($array_pruefen, $zeilaaaa[$aaaa]);
if (empty($resultZ))
{
echo "Zeile" . $aaaa . "ist voll ok man" ;
echo "<br/>";
}
else
{
echo "Zeile" . $aaaa . "ist aber mal gar nicht richtig" ;
echo "<br/>";
}
$aaaa++;
}
//---------------------------Ende der Zeilenprüfung-------------------------
//---------------------------Anfang Spaltenprüfung-------------------------
$iiii = 0 ;
while ($iiii < 9)
{
$resultS = array_diff($array_pruefen, $spalteeee[$iiii]);
if (empty($resultS))
{
echo "Spalte" . $iiii . "ist voll ok man" ;
echo "<br/>";
}
else
{
echo "Spalte" . $iiii . "ist aber mal gar nicht richtig" ;
echo "<br/>";
}
$iiii++;
}
?>
<a href="try.php" onclick="FensterOeffnen(this.href); return false">Neues Fenster</a>
</td>
</td>
</tr>
<tr>
<td height=28 valign=bottom><center>
<form method=post>
<input type="button" value="Lösung zeigen" onClick="">
<input type="button" value="Prüfung" href="try.php" onClick="FensterOeffnen(this.href); return false">
<input type="submit" value="Neues Sudoku" onClick"">
<input type="button" value="Fertig" onClick="">
<div id=bild>
<img src="bilder/Android.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild2>
<img src="bilder/Android2.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild3>
<img src="bilder/Android3.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild4>
<img src="bilder/Android4.png" alt="Das Bild kann leider nicht angezeigt werden O.o" width="135">
</div>
<div id=bild5>
<img src="bilder/hintergrund.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
</body>
</html>
Ihr müsst mir jetzt keine Fertigen Lösungen schreiben mir reicht es wenn ihr mich auf eine Idee bringt ;) Wobei eine Lösung wäre natürlich einfacher :P