darkii |
26.10.2011 16:05:17 |
AW: Sudoku (Grundlage steht)
Erst mal danke für die Schreibfehlerkorrektur ;)
Den Code hab ich nun so umgestellt aber ich komme nicht drauf wie ich das ganze jetzt umsetzte. Egal welchen Gedankenweg ich gehe ich komm auf Probleme über Probleme.
Hatte auch schon eine Idee hatt mir aber alles zerstört. Und dadurch das ich seit 7 Stunden an dem Code wieder sitze bin ich leicht gebrainfucked :D
Habt ihr da noch ne idee oder nen tipp ? mir egal was Hauptsache Hilfe :D
PS: Den veränderten Code füge ich oben in den ersten post ein
PS2: Kann den ersten Code nicht editieren füge ihn dann (auch wen es etwas unübersichtlicher wird) hier ein.
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=1000,height=800,scrollbars=no");
MeinFenster.focus();
}
</script>
<!------------------------------------- Anfang Tabellenerstellung ------------------------------------------->
//gekürzt
<!----------------------------------- Unterbrechung Tabellenerstellung ------------------------------------->
<?php
//----------------------------------- Anfang Datensuche ----------------------------------------------------
ini_set('memory_limit', '-1');
define("KONSTANTE1" , 1 );
define("KONSTANTE2" , 2 );
define("KONSTANTE3" , 3 );
define("KONSTANTE4" , 4 );
define("KONSTANTE5" , 5 );
define("KONSTANTE6" , 6 );
define("KONSTANTE7" , 7 );
define("KONSTANTE8" , 8 );
define("KONSTANTE9" , 9 );
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']);
}
//---------------------------------Ende Datensuche-----------------------------------------------------------------------
//------------------------------------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 < 75 )
{
$spalteeee3[] = $_SESSION['sudoku'][$cc];
$cc = $cc + 9;
}
$dd = 3;
while ($dd < 76 )
{
$spalteeee4[] = $_SESSION['sudoku'][$dd];
$dd = $dd + 9;
}
$ee = 4;
while ($ee < 77 )
{
$spalteeee5[] = $_SESSION['sudoku'][$ee];
$ee = $ee + 9;
}
$ff = 5;
while ($ff < 78 )
{
$spalteeee6[] = $_SESSION['sudoku'][$ff];
$ff = $ff + 9;
}
$gg = 6;
while ($gg < 79 )
{
$spalteeee7[] = $_SESSION['sudoku'][$gg];
$gg = $gg + 9;
}
$hh = 7;
while ($hh < 80 )
{
$spalteeee8[] = $_SESSION['sudoku'][$hh];
$hh = $hh + 9;
}
$ii = 8;
while ($ii < 81 )
{
$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
{
var_dump($resultZ);
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++;
}
//-----------------------Ende der Spaltenpberprüfung------------------------
//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 )
{
if (intval($_SESSION['sudoku'][$count]) == 1)
{
$data = "value='" . KONSTANTE1 . "'readonly style='background:#6E6E6E; " . $border . "'";
}
if (intval($_SESSION['sudoku'][$count]) == 2)
{
$data = "value='" . KONSTANTE2 . "'readonly style='background:#6E6E6E; " . $border . "'";
}
if (intval($_SESSION['sudoku'][$count]) == 3)
{
$data = "value='" . KONSTANTE3 . "'readonly style='background:#6E6E6E; " . $border . "'";
}
if (intval($_SESSION['sudoku'][$count]) == 4)
{
$data = "value='" . KONSTANTE4 . "'readonly style='background:#6E6E6E; " . $border . "'";
}
if (intval($_SESSION['sudoku'][$count]) == 5)
{
$data = "value='" . KONSTANTE5 . "'readonly style='background:#6E6E6E; " . $border . "'";
}
if (intval($_SESSION['sudoku'][$count]) == 6)
{
$data = "value='" . KONSTANTE6 . "' readonly style='background:#6E6E6E; " . $border . "'";
}
if (intval($_SESSION['sudoku'][$count]) == 7)
{
$data = "value='" . KONSTANTE7 . "'readonly style='background:#6E6E6E; " . $border . "'";
}
if (intval($_SESSION['sudoku'][$count]) == 8)
{
$data = "value='" . KONSTANTE8 . "'readonly style='background:#6E6E6E; " . $border . "'";
}
if (intval($_SESSION['sudoku'][$count]) == 9)
{
$data = "value='" . KONSTANTE9 . "'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);
....
Code gekürzt weil er zulang war ;)
|