Forum programmation
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 sudoku

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3  Suivant
AuteurMessage
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: sudoku   Sam 24 Mar - 12:23

Il y'a un jeu qui apparait dans le magazine
tunisien de "La Presse" chaque dimanche. Et il est facilement
réalisable. Il s'agit du "Sudoku". C'est un jeu simple qui consiste à
remplir une grille avec des chiffre de 1 à 9 de sorte que
horizontalement et verticalement chaque ligne et chaque colonne et
chaque bloc de 3 cases par 3 contiennent tous des chiffres de 1 à 9.

voici une grille de test.

+------+------+------+
|9 8 3 |7 _ 5 |2 _ 4 |
|_ 5 _ |9 _ _ |_ 6 _ |
|7 6 _ |_ 4 _ |9 _ 3 |
+------+------+------+
|3 _ 1 |2 _ 8 |6 9 _ |
|_ 2 _ |_ 1 _ |_ _ 5 |
|_ _ 6 |_ 3 7 |_ 8 _ |
+------+------+------+
|_ _ _ |5 8 2 |4 _ 1 |
|4 _ 8 |_ _ 6 |_ 2 9 |
|_ _ 5 |1 9 _ |_ 3 6 |
+------+------+------+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Sam 24 Mar - 12:26

Oh, excusez moi ! J'ai oublié de vous dire qu'on demande de faire un programme qui permet de trouver les éléments manquants de cette grille.

J'ai déja réalisé le programme en Python langage interprété et libre et puis je l'ai réalisé une seconde fois en C++. Et je souhaite adapter ma solution en Pascal. Mais, avant j'attends vos contributions.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: sudoku   Sam 24 Mar - 13:47

merci manianis, j'ai deja commené sur ce jeu, ma seul pb les condition de saisie dans les careau 3*3 (j'ai travailé avec une matrice vide et l'ordinateur remplira 10 nombre hauzard avec random) est ce que vous pouvez m'aider Crying or Very sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Sam 24 Mar - 16:04

Voici l'affichage du programme :
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: sudoku   Sam 24 Mar - 16:27

Code:
program soduku;
uses wincrt;
max n= 9
type mat=array[1..max,1..max] of byte;
    nbr=1..max;
var i,j,n:nbr;
    m:mat;

fonction test (x:nbr; m:mat):boolean;
begin
k:= 0;
repeat
  inc(k);
until (x = m[k,j]) or (k = max);

k:= 0;
repeat
  inc(k);
until (x = m[i,k]) or (k = max);

test := (x = m[k,j]) or (x = m[i,k]);
end;


procedure saisie (var i,j:nbr; var m:mat);
begin
 randomize;
  repeat
    i := random(10);
    j := random(10);
    m[i,j]:= random(10);
  until (i > 0) and (j > 0) and m[i,j] > 0) and (test(x,m));
end;




je veux savoir si ced code est juste jusqu'a mnt ou non svp manimanis et merci d'avence
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Sam 24 Mar - 17:00

Ce code est bon pour remplir au hazard une grille sudoku ce qui n'est pas demandé. La grille est donnée et on devra chercher une solution à cette grille.

Je vois que tu essayes de créer une grille sudoku au hazard c'est bien mais utilisant uniquement le hazard (random) c'est trés difficile.

cependant la procédure saisie possède quelques erreurs car elle accepte deux entiers i et j puis les ecrase avec des nombres random ! encore l'affectation m[i,j] risque d'écraser des bonnes valeurs trouvées précédemment.

Je te conseille de prendre l'exemple de la grille ci-dessus et d'essayer de trouver une stratégie pour trouver les nombres cachés.

Initialement ta matrice contiendra les valeurs que j'ai donné.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: sudoku   Sam 24 Mar - 17:11

ok, merci pour les remarques


une question svp: les cases vides sont consedirer comme 0(zero)?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Sam 24 Mar - 17:49

oui si tu souhaites utiliser zéro c'est bien. l'important est que cette valeur soit différente de 1 à 9 .
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: sudoku   Dim 25 Mar - 14:01

dsl manimanis j'ai pas trouver la meilleur solution Embarassed Embarassed Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Dim 25 Mar - 14:27

Ne t'en fais pas...
la meilleure stratégie est de :
1 - chercher les chiffres manquants dans une ligne j
2 - chercher les chiffres manquants dans une colonne i
3 - chercher les chiffres manquants dans une sous matrice 3x3 auquelle appartient la case i, j
4 - faire l'intersection des trois résultats pour obtenir les cases qui peuvent être placé dans la case qui est l'intersection de la ligne j et de la colonne i
5 - si l'intersection est un seul numéro alors c'est celui qu'on cherche pour la case i, j
6 - on répète les étapes 1 à 5 pour toutes les lignes et les colonnes de la matrice
7 - on répète les étapes précédente tant qu'il y'a des valeurs qui ont été placée dans la matrice
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Dim 25 Mar - 14:55

Eh les amis j'attends vos propos et vos contributions...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: sudoku   Dim 25 Mar - 20:01

En me basant sur ton raisonnement, j'ai réussi à résoudre ce probléme. Mais biensur j'ai un peu amélioré ton idée. Voici les modules que j'ai utilisé :

  • existeCa
    Code:
    function existeCa(T:TTab;i,j,N:integer):boolean;
      var l,c:integer;
          ok:boolean;
      begin
        ok:=false;
        for l:=(i div 3)*3+1 to (i div 3 + 1)*3 do
          for c:=(j div 3)*3+1 to (j div 3 + 1)*3 do
            if T[i,j]=N then ok:=true;
        existeCa:=ok;
      end;
    Cette fonction permet de verifier l'éxistance d'une valeur dans un carreau.
  • existeL
    Code:
    function existeL(T:TTab;i,j,N:integer):boolean;
      var c:integer;
          ok:boolean;
      begin
        ok:=false;
        for c:=1 to 9 do
          if T[i,C]=N then ok:=true;
        existeL:=ok;
      end;
    Cette fonction permet de verifier l'existance d'une valeur dans une ligne.
  • existeC
    Code:
    function existeC(T:TTab;i,j,N:integer):boolean;
      var l:integer;
          ok:boolean;
      begin
        ok:=false;
        for l:=1 to 9 do
          if T[l,j]=N then ok:=true;
        existeC:=ok;
      end;
    Cette fonction permet de verifier l'existance d'une valeur dans une colonne.
  • Finale
    Code:
    procedure finale(var T:TTab);
      var i,j,n,nb,k,L,c:integer;
      begin
        nb:=0;
        for i:=1 to 9 do
          for j:=1 to 9 do
            if T[i,j] IN [1..9] then inc(nb);
        c:=nb;
        repeat
          inc(c);
          for i:=1 to 9 do
            for j:=1 to 9 do
              if T[i,j]=0 then
              begin
                L:=0;
                for k:=1 to 9 do
                if not (existeL(T,i,j,k) OR
                        existeC(T,i,j,k) OR
                      existeCa(T,i,j,k)) then begin inc(L);n:=k;end;         
                if l=1 then begin inc(nb);T[i,j]:=n;end;
              end;
        until (nb=81)OR(c=81);
      end;
  • Affiche
    Code:
    procedure affiche(T:TTab);
      var i,j:integer;
      begin
        for i:=1 to 9 do
          begin
            for j:=1 to 9 do
              if (j=3) OR (j=6)then write(T[i,j]:2,'|':2)
              else write(T[i,j]:2);
            writeln;
            if (i=3)OR(i=6) then writeln(' ---------------------');
          end;
      end;


Est ce que ma solution est bonne ?
Et surtout est ce qu'elle est optimale ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Dim 25 Mar - 21:25

La solution est bonne félicitations.
Je l'ai testé.

Code:
program sudoku;
type ttab = array[1..9,1..9] of integer;

function existeCa(T:TTab;i,j,N:integer):boolean;
  var l,c:integer;
      ok:boolean;
  begin
    ok:=false;
    for l:=(i div 3)*3+1 to (i div 3 + 1)*3 do
      for c:=(j div 3)*3+1 to (j div 3 + 1)*3 do
        if T[i,j]=N then ok:=true;
    existeCa:=ok;
  end;
 
function existeL(T:TTab;i,j,N:integer):boolean;
  var c:integer;
      ok:boolean;
  begin
    ok:=false;
    for c:=1 to 9 do
      if T[i,C]=N then ok:=true;
    existeL:=ok;
  end;

function existeC(T:TTab;i,j,N:integer):boolean;
  var l:integer;
      ok:boolean;
  begin
    ok:=false;
    for l:=1 to 9 do
      if T[l,j]=N then ok:=true;
    existeC:=ok;
  end;
 
procedure finale(var T:TTab);
  var i,j,n,nb,k,L,c:integer;
  begin
    nb:=0;
    for i:=1 to 9 do
      for j:=1 to 9 do
        if T[i,j] IN [1..9] then inc(nb);
    c:=nb;
    repeat
      inc(c);
      for i:=1 to 9 do
        for j:=1 to 9 do
          if T[i,j]=0 then
          begin
            L:=0;
            for k:=1 to 9 do
            if not (existeL(T,i,j,k) OR
                    existeC(T,i,j,k) OR
                  existeCa(T,i,j,k)) then begin inc(L);n:=k;end;       
            if l=1 then begin inc(nb);T[i,j]:=n;end;
          end;
    until (nb=81)OR(c=81);
  end;

procedure affiche(T:TTab);
  var i,j:integer;
  begin
    for i:=1 to 9 do
      begin
        for j:=1 to 9 do
          if (j=3) OR (j=6)then write(T[i,j]:2,'|':2)
          else write(T[i,j]:2);
        writeln;
        if (i=3)OR(i=6) then writeln(' ---------------------');
      end;
  end;

var t : ttab;
begin
(*
+------+------+------+
|9 8 3 |7 _ 5 |2 _ 4 |
|_ 5 _ |9 _ _ |_ 6 _ |
|7 6 _ |_ 4 _ |9 _ 3 |
+------+------+------+
|3 _ 1 |2 _ 8 |6 9 _ |
|_ 2 _ |_ 1 _ |_ _ 5 |
|_ _ 6 |_ 3 7 |_ 8 _ |
+------+------+------+
|_ _ _ |5 8 2 |4 _ 1 |
|4 _ 8 |_ _ 6 |_ 2 9 |
|_ _ 5 |1 9 _ |_ 3 6 |
+------+------+------+
*) 
  t[1,1] := 9; t[1,2] := 8; t[1,3] := 3;
  t[1,4] := 7; t[1,5] := 0; t[1,6] := 5;
  t[1,7] := 2; t[1,8] := 0; t[1,9] := 4;
 
  t[2,1] := 0; t[2,2] := 5; t[2,3] := 0;
  t[2,4] := 9; t[2,5] := 0; t[2,6] := 0;
  t[2,7] := 0; t[2,8] := 6; t[2,9] := 0;
 
  t[3,1] := 7; t[3,2] := 6; t[3,3] := 0;
  t[3,4] := 0; t[3,5] := 4; t[3,6] := 0;
  t[3,7] := 9; t[3,8] := 0; t[3,9] := 3;

  t[4,1] := 3; t[4,2] := 0; t[4,3] := 1;
  t[4,4] := 2; t[4,5] := 0; t[4,6] := 8;
  t[4,7] := 6; t[4,8] := 9; t[4,9] := 0;
 
  t[5,1] := 0; t[5,2] := 2; t[5,3] := 0;
  t[5,4] := 0; t[5,5] := 1; t[5,6] := 0;
  t[5,7] := 0; t[5,8] := 0; t[5,9] := 5;
 
  t[6,1] := 0; t[6,2] := 0; t[6,3] := 6;
  t[6,4] := 0; t[6,5] := 3; t[6,6] := 7;
  t[6,7] := 0; t[6,8] := 8; t[6,9] := 0;

  t[7,1] := 0; t[7,2] := 0; t[7,3] := 0;
  t[7,4] := 5; t[7,5] := 8; t[7,6] := 2;
  t[7,7] := 4; t[7,8] := 0; t[7,9] := 1;
 
  t[8,1] := 4; t[8,2] := 0; t[8,3] := 8;
  t[8,4] := 0; t[8,5] := 0; t[8,6] := 6;
  t[8,7] := 0; t[8,8] := 2; t[8,9] := 9;
 
  t[9,1] := 0; t[9,2] := 0; t[9,3] := 5;
  t[9,4] := 1; t[9,5] := 9; t[9,6] := 0;
  t[9,7] := 0; t[9,8] := 3; t[9,9] := 6;
 
  affiche(t);
  writeln;
 
  finale(t);
  affiche(t);
 
  readln;
end.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Dim 25 Mar - 21:31

Pour l'optimisation... Je ne sais pas s'il est possible d'optimiser ce code.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Dim 25 Mar - 21:34

Moi je n'ai pas utilisé une matrice mais j'ai utilisé une chaine de caractère voici ma solution. J'aime utiliser l'anglais.

Code:
program sudoku;

(* retourne les valeurs manquants sur une ligne (line) donnée*)
function get_unk_line(grille : string ; line : integer):string;
var str, unk : string;
    c : char;
    i : integer;
begin
  str := '';
  for i:=0 to 8 do
    if (grille[line * 9 + i + 1] <> '0') then
      str := str + grille[line * 9 + i + 1]; 
 
  unk := '';
  for c := '1' to '9' do
    if (pos(c, str) = 0) then
      unk := unk + c;
       
  get_unk_line := unk;
end;

(* retourne les valeurs manquants sur une colonne (col) donnée*)
function get_unk_column(grille : string ; col : integer):string;
var str, unk : string;
    c : char;
    i : integer;
begin
  str := '';
  for i:=0 to 8 do
    if (grille[i * 9 + col + 1] <> '0') then
      str := str + grille[i * 9 + col + 1];
 
  unk := '';
  for c := '1' to '9' do
    if (pos(c, str) = 0) then
      unk := unk + c;
   
  get_unk_column := unk;
end;

(* retourne les valeurs manquants dans le bloc du point (col, line) données *)
function get_unk_bloc(grille : string ; col, line : integer):string;
var str, unk : string;
    c : char;
    i, j : integer;
begin
  col := (col div 3) * 3;
  line := (line div 3) * 3;
 
  str := '';
  for j:=0 to 2 do
    for i:=0 to 2 do
      if (grille[(line + j) * 9 + (col + i) + 1] <> '0') then
        str := str + grille[(line + j) * 9 + (col + i) + 1];
 
  unk := '';
  for c := '1' to '9' do
    if (pos(c, str) = 0) then
      unk := unk + c;

  get_unk_bloc := unk;
end;

(* retourne les valeurs qui se trouvent à la fois dans str1 et str2 *)
function intersect_string(str1, str2 : string):string;
var unk : string;
    i : integer;
begin
  unk := '';
  for i:=1 to length(str1) do
    if (pos(str1[i], str2) <> 0) then
      unk := unk + str1[i];
 
  intersect_string := unk;
end;

(* retourne la liste des valeurs possible pour un point donnée (col, line) *)
function get_unk_grid(grille : string ; col, line : integer):string;
var unk : string;
begin
  unk := '';
 
  if (grille[line * 9 + col + 1] = '0') then begin
    unk := intersect_string(get_unk_line(grille, line), get_unk_column(grille, col));
    unk := intersect_string(unk, get_unk_bloc(grille, col, line));
  end;
 
  get_unk_grid := unk;
end;

(* affiche la grille *)
procedure show_string(var grille : string);
var i, j : integer;
begin
  for j := 0 to 8 do begin
    if (j > 0) and (j mod 3 = 0) then
      Writeln('------------------');
   
    for i:=0 to 8 do begin
      if (i > 0) and (i mod 3 = 0) then Write('|') else Write(' ');
      if (grille[j * 9 + i + 1] <> '0') then
        Write(grille[j * 9 + i + 1])
      else
        Write('_');
    end;

    Writeln;
  end;
end;

(* Résoudre la grille *)
procedure resolve_grid(grille : string);
var unk : string;
    trouve, somme, i, j : integer;
begin
  somme := 0;
  repeat
    trouve := 0;
   
    for j:= 0 to 8 do
      for i:= 0 to 8 do begin
        unk := get_unk_grid(grille, i, j);
        if (length(unk) = 1) then begin
          grille[j * 9 + i + 1] := unk[1];
          trouve := trouve + 1;
        end;
      end;
  until (trouve = 0);
 
  show_string(grille);
end;

var grille : string;
begin
  grille := '983705204'+
            '050900060'+
            '760040903'+
            '301208690'+
            '020010005'+
            '006037080'+
            '000582401'+
            '408006029'+
            '005190036';
 
  Writeln('Grille Initiale');
  show_string(grille);
  Writeln;
 
  Writeln('Grille Finale');
  resolve_grid(grille);
 
  Readln;
end.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: sudoku   Dim 25 Mar - 22:37

Merci Manianis.
Mais est ce que t'as prévu le cas où on ne peut pas résoudre la grille ?
En fait avant celà, est ce qu'il y a des cas où c'est impossible de résoudre la grille de Sudoku ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Lun 26 Mar - 8:47

Essaye ce cas pour voir.

1 _ 2|7 _ _|3 _ 9
_ _ _|_ 6 _|_ 2 _
3 _ 9|_ _ _|5 _ 7
------------------
5 _ 7|_ _ 3|_ _ 4
_ _ _|_ 8 _|_ _ _
6 _ 3|2 _ _|8 _ 5
------------------
2 _ 4|8 _ _|9 _ 6
_ 7 _|_ 3 _|_ 4 _
9 _ 6|_ _ 2|7 _ 8
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Lun 26 Mar - 8:55

ton programme donne moins de résultats que le mien. mais, tous les deux sont incapables de donner la bonne grille.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: sudoku   Lun 26 Mar - 13:36

Bonne nouvelle, j'ai réussi à faire un programme qui peut résoudre cette grille.
Voici deux captures d'ecran :







Dans la ligne au milieu, les nombres représentent le nombre de chiffres bien placés, le T représente l'action de Tatonner et le B représente le fait que le programme soit blocké.
J'attend vos commentaires.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: sudoku   Lun 26 Mar - 13:51

J'ai exécuté le programmme une disaine de fois, et voici uen autre capture d'ecran pour mieu illustrer mon idée :

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Lun 26 Mar - 14:30

Excellent travail chef... Trés bien... Je ne suis pas entrains de me moquer mais 20/20 c'est peu...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Lun 26 Mar - 14:39

Il reste à savoir comment tu tatonnes ?

Essayes avec cette grille !!!

1 _ _|_ _ _|3 _ 9
_ _ _|_ 6 _|_ 2 _
3 _ 9|_ _ _|5 _ 7
------------------
5 _ 7|_ _ 3|_ _ 4
_ _ _|_ 8 _|_ _ _
6 _ 3|2 _ _|8 _ 5
------------------
2 _ 4|8 _ _|9 _ 6
_ _ _|_ _ _|_ 4 _
9 _ 6|_ _ 2|7 _ 8
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: sudoku   Lun 26 Mar - 15:27

Ta capture d'écran ne donne aucune idée mais indique qu'il est possible de trouver plusieurs grilles correctes pour les mêmes valeurs de départ. On a pas saisi comment ton programme fait son tatonnement.


Dernière édition par le Lun 26 Mar - 19:55, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: sudoku   Lun 26 Mar - 18:51

felicitation Chaker Idea
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: sudoku   Lun 26 Mar - 21:42

En fait moi j'ai eu cette idée quand j'ai essayé de la résoudre moi même, car j'ai du mettre des valeurs au hazard pour ensuite résoudre cette grille.
Le tataunement consiste a trouver la case ou il ya le plus de possibilités et à choisir au hazard une valeur à inserrer. Et le bloquage c'est qu'il ya une case ou il ya 0 et 0 possiblité.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: sudoku   

Revenir en haut Aller en bas
 
sudoku
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivant
 Sujets similaires
-
» [PROJET] sudoku
» SUDOKU solution
» SUDOKU

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum programmation :: Programmation :: Delphi & Pascal :: Pascal :: Exercices-
Sauter vers: