Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Sudoku

manninen [28.05.2012 15:35:08]

#

<?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>";
?>

Metabolix [28.05.2012 16:05:22]

#

Ontuva toteutus, paljon huonoja tapoja ja koodi juuri olennaisissa kohdissa täysin kommentoimatonta ja muuttujien nimet epäselvät.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta