<?php /** * @author Jussi Manninen * @package Kovakoodattu Sudokupeli alusta * @version 0.1 */ $lauta = array( array(false,4,false,false,5,3,1,false,2), array(2,false,8,1,false,false,7,false,false), array(5,false,1,4,2,false,6,false,false), array(8,1,4,false,3,false,2,false,7), array(false,6,false,2,false,5,false,1,9), array(false,5,false,7,4,false,false,6,3), array(false,false,false,false,7,4,5,8,1), array(1,8,5,9,false,2,false,false,false), array(4,false,3,false,false,8,false,2,6) ); $ratkaisu = array( array(7,4,6,8,5,3,1,9,2), array(2,3,8,1,9,6,7,4,5), array(5,9,1,4,2,7,6,3,8), array(8,1,4,6,3,9,2,5,7), array(3,6,7,2,8,5,4,1,9), array(9,5,2,7,4,1,8,6,3), array(6,2,9,3,7,4,5,8,1), array(1,8,5,9,6,2,3,7,4), array(4,7,3,5,1,8,9,2,6) ); // Luodaan formi print "<form name='sudoku' method='post' action='$_SERVER[PHP_SELF]'>"; print "<p><B>Sudoku:</b></p>"; // Kutsutaan functiota Sudoku Sudoku($lauta, $ratkaisu); // Luodaan pelilauta function Sudoku($sudoku, $solved){ // Luodaan rivi sekä solu arvot 0-8. Arvot muodostuvat taulukon rakenteesta. $rivi = -1; $solu = -1; foreach ($sudoku as $row){ $rivi++; foreach ($row as $col){ $solu++; if($solu >= 9){ $solu = 0; } $pelilauta = $sudoku[$rivi][$solu]; $pelipohja = empty($_REQUEST['pelipohja'][$rivi][$solu]) ? $pelilauta : $_REQUEST['pelipohja'][$rivi][$solu]; $ratkaisu = $solved[$rivi][$solu]; if($pelipohja != $pelilauta){ $col = $pelipohja; } $err = 'style="background:white; border:1px solid black; text-align:center;"'; if(!empty($_REQUEST['pelipohja'])){ if($pelipohja != $ratkaisu){ $err = 'style="background:white; border:1px solid red; text-align:center;"'; } } $write = ''; if($pelipohja == $ratkaisu){ $err = 'style="background:silver; border:1px solid black; text-align:center;"'; $write = "readonly"; } print "<input type=\"text\" size=\"2\" $err $write name=\"pelipohja[$rivi][$solu]\" value=\"$col\">"; } print "<br />"; } } print '<br><input type="submit" value="Tarkista">'; print "</form>"; ?>
Ontuva toteutus, paljon huonoja tapoja ja koodi juuri olennaisissa kohdissa täysin kommentoimatonta ja muuttujien nimet epäselvät.
Aihe on jo aika vanha, joten et voi enää vastata siihen.