Le prb de huit dames
fatouna1
-
info -
info -
Bonjour,
cas urgent
si quelqu'un a une solution pour ce prb j'espére bi1 q'il m'aide
ecrire un algo permet d'afficher les positions et le nbre de solutions pour le prb de huit dames
cas urgent
si quelqu'un a une solution pour ce prb j'espére bi1 q'il m'aide
ecrire un algo permet d'afficher les positions et le nbre de solutions pour le prb de huit dames
Configuration: Windows XP Firefox 3.0.8
2 réponses
-
J'est dja lu 7 question, il n'y a pa tré lontan... é je ferè la même réponse.
Va sur Web, le pb é dja tréT.
a+ -
program huit_dames;
uses wincrt;
type
tab1 = array[1..4] of integer;
tab2 = array[1..4] of boolean;
tab3 = array[1..7] of boolean;
var
ligne:tab1;
colonne:tab2;
diag_g,diag_d:tab3;
trouve:boolean;
procedure init(var col:tab2;var dg,dd:tab3);
var
i:integer;
begin
write('Dame de 4 :');readln;
for i:= 1 to 4 do
col[i]:=true;
for i:= 1 to 7 do
begin
dg[i]:=true;
dd[i]:=true;
end;
end;
procedure placer_dame(var trouve:boolean;num_lig:integer;var ligne:tab1;var col:tab2;var dg,dd:tab3);
var
c:integer;
begin
c:=0;
repeat
c:=c+1;
if (col[c]=true) and (dg[num_lig + c -1] = true) and (dd[num_lig - c +4] = true) then
begin
ligne[num_lig]:=c;
col[c]:=false;
dg[num_lig + c -1]:=false;
dd[num_lig - c +4]:=false;
if num_lig < 4 then
placer_dame(trouve,num_lig+1,ligne,col,dg,dd)
else trouve := true;
col[c]:=true;
dg[num_lig + c -1]:=true;
dd[num_lig - c +4]:=true;
end;
until (trouve = true) or ( c = 4);
end;
procedure affichage(linge : tab1);
var
i,j:integer;
begin
clrscr;
writeln('--------- ');
for i := 1 to 4 do
begin
write('|');
for j := 1 to 4 do
begin
if ligne[i]=j then write('*|')
else write(' |');
end;writeln;
end;
end;
BEGIN
init(colonne,diag_g,diag_d);
trouve:=false;
placer_dame(trouve,1,ligne,colonne,diag_g,diag_d);
if trouve then affichage(ligne);
END.
POUR n = 4
pour huit modifier 4 par 8 et 7 par 15= 2*n-1