Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 13-02-2008 06:08:44

papin59
Membre
Date d'inscription: 13-02-2008
Messages: 10

sudoku en PHP

Bonjour,
j'essaye de faire une grille de sudoku et sa résolution.
Voici ce ue j'ai pour le moment ...
http://membres.lycos.fr/selrac/TP1_PHP/index.php
Et voici mon code source:
Code : PHP - Afficher / masquer les numéros de ligne

   1.
      <html>
   2.
      <head>
   3.
      <title>Site TP PHP</title>
   4.
      </head>
   5.
      <body >
   6.
       
   7.
       
   8.
      <?php echo"<font size=\"9\" color=\"red\">********<br>*******</font>";
   9.
               //tableau avec les varaible de dépard
  10.
              $sud = array(
  11.
                      array(0, 0, 9, 0, 6, 0, 0, 7, 3),
  12.
                      array(0, 1, 2, 0, 0, 0, 0, 0, 0),
  13.
                      array(0, 0, 0, 2, 0, 3, 0, 0, 0),
  14.
                      array(0, 0, 0, 4, 0, 0, 9, 0, 8),
  15.
                      array(2, 9, 0, 0, 3, 0, 0, 5, 6),
  16.
                      array(1, 0, 4, 0, 0, 5, 0, 0, 0),
  17.
                      array(0, 0, 0, 3, 0, 9, 0, 0, 0),
  18.
                      array(0, 0, 0, 0, 0, 0, 6, 3, 0),
  19.
                      array(5, 7, 0, 0, 4, 0, 8, 0, 0)
  20.
              );
  21.
       
  22.
       
  23.
      //Code source qui affiche le tableau
  24.
              echo "<table border=2 width=800 height=800>";
  25.
              for($i=0;$i<3;$i++)
  26.
                      {       echo"<tr>";
  27.
              for($j=0;$j<3;$j++)
  28.
                              {echo"<th>";
  29.
                              {echo "<table border=2 width=220 height=220 align=center>";
  30.
                                      for($k=0;$k<3;$k++)
  31.
                                              {echo"<tr>";
  32.
                                              for($l=0;$l<3;$l++)
  33.
                                                      {//fonction affichant les nombres dans le tableau
  34.
                                                                          if($sud[$i+$j][$k+$l]!=0)
  35.
                                                                                   {echo "<td bgcolor=\"grey\" align=\"center\">";
  36.
                                                                                                   $predefini=$sud[$i+$j][$k+$l];
  37.
                                                                                   echo "$predefini";
  38.
                                                                                     echo"</td>";
  39.
                                                                                   }
  40.
                                                                         else{echo"<td>";
  41.
                                                                               //Formulaire pour liste déroulante
  42.
                                                                               echo"<form method=post action=resultat.php>
  43.
                                                                                        <p><select name=nombre id=nombre>
  44.
                                                                                                <option value=vide></option>
  45.
                                                                                                <option value=1>1</option>
  46.
                                                                                                <option value=2>2</option>
  47.
                                                                                                <option value=3>3</option>
  48.
                                                                                                <option value=4>4</option>
  49.
                                                                                                <option value=5>5</option>
  50.
                                                                                                <option value=6>6</option>
  51.
                                                                                                <option value=7>7</option>
  52.
                                                                                                <option value=8>8</option>
  53.
                                                                                                <option value=9>9</option>                                                                                         
  54.
                                                                                             </select>
  55.
                                                                                       </p>
  56.
                                                                                    </form>";
  57.
                                                                                echo"</td>";
  58.
                                                                            }
  59.
                                                     
  60.
                                                      }
  61.
                                              echo"</tr>";
  62.
                                              }
  63.
                              echo"</table>";
  64.
                      }     
  65.
                                        echo"</th>";
  66.
                              }
  67.
                              echo"</tr>";
  68.
                      }
  69.
              echo"</table>";
  70.
      //Formulaire pour le bouton envoyer
  71.
      echo"<form methode=post action=resultat.php > 
  72.
      <p align=\"center\"><input type=submit  name=\"play\" value=\"PLAY\"> </p>
  73.
      </form>";
  74.
      ?>
  75.
      </body>
  76.
      </html>



Comme vous pouvez le voir ... mon tableau n'affiche pas les bonnes valeurs par défaut ... ça plusieurs heures que je passe sur cette erreur. Si vous pouviez m'aider ?
Merci

Hors ligne

 

#2 13-02-2008 06:41:25

lolo3129
Membre
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 505
Site web

Re: sudoku en PHP

hello,

il va falloir écrire un algorithme...
en gros, il faut parcourir la liste des valeurs déjà affectées et les enlever des autres colonnes / lignes

++

Hors ligne

 

#3 13-02-2008 10:01:43

papin59
Membre
Date d'inscription: 13-02-2008
Messages: 10

Re: sudoku en PHP

Désolé mais je comprends pas ton raisonnement ...

MErci.

Hors ligne

 

#4 14-02-2008 03:01:25

lolo3129
Membre
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 505
Site web

Re: sudoku en PHP

qu'appelles tu les "bonnes valeur par défaut" ?

Hors ligne

 

#5 14-02-2008 07:11:41

papin59
Membre
Date d'inscription: 13-02-2008
Messages: 10

Re: sudoku en PHP

Bah les valeurs déjà placées sur sudoku avant même de jouer.

Hors ligne

 

#6 14-02-2008 09:53:07

lolo3129
Membre
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 505
Site web

Re: sudoku en PHP

à la ligne 41, il faut que tu regardes dans ta variable $sud sur la même colonne et la même ligne pour supprimer les numéros qui ne vont pas.
donc dans le else, tu parcours le bon tableau qui correspond à la grille en cours, et tu récupères les 5 valeurs déjà existantes. si elles sont > 0, il faut supprimer la ligne <option > correspondante.

Hors ligne

 

#7 14-02-2008 11:38:14

papin59
Membre
Date d'inscription: 13-02-2008
Messages: 10

Re: sudoku en PHP

Ok je vais vérifier !!

Merci ;-)

Hors ligne