A voir également:
- Le prb de huit dames
- Jeu de dames 20 pions gratuit télécharger - Télécharger - Société
- Playok dame de pique - Forum Jeux PC
- Jeux de la dame de pique sur yahoo - Forum Jeux vidéo
- Télécharger jeu de dames 100 cases - Forum Logiciels
- La dame de pique ✓ - Forum Jeux vidéo
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+
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
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