Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //program pomocu koga se odredjuju svi polozaji osam dama na sah tabli
- //takvi da se dame medjusobno ne napadaju
- program dame;
- type
- niz = array[1..30] of integer;
- var
- n,i,p,k,broj:integer;
- d: niz;
- //d[i]=j znaci da u i-toj koloni dama se nalazi u vrsti j
- procedure UnosNiza (var n:integer;var x:niz);
- var i:integer;
- begin
- write('Broj clanova niza: ');
- readln(n);
- for i:=1 to n do
- begin
- write ('x[',i,']=');
- readln(x[i]);
- end;
- end;
- procedure StampaTable;
- var i,j:integer;
- begin
- writeln;
- for j:=8 downto 1 do
- begin
- for i:=1 to 8 do
- if(d[i]=j) then write(' * ')
- else write (' 0 ');
- writeln;
- writeln;
- end;
- end;
- function slobodno(k,v:integer):boolean;
- //ako je polje slobodno vraća true
- var i,j:integer;
- begin
- slobodno:=true;
- for i:=1 to k-1 do
- if d[i]=v then slobodno:=false;
- i:=k-1; j:=v-1;
- while (i>=1) and (j>=1) do
- begin
- if i-d[i]=k-v then slobodno:=false;
- i:=i-1;
- j:=j-1;
- end;
- i:=k-1; j:=v+1;
- while (i>=1) and (j<=8) do
- begin
- if i+d[i]=k+v then slobodno:=false;
- i:=i-1;
- j:=j+1;
- end;
- end;
- procedure dama(k,v:integer);
- var j:integer;
- begin
- d[k]:=v;
- if k=8
- then
- begin
- broj:=broj+1;
- writeln('resenje broj: ',broj);
- writeln;
- stampaTable;
- readln;
- d[k]:=0;
- end
- else
- begin
- for j:=1 to 8 do
- if (slobodno(k+1,j)) then dama(k+1,j);
- end;
- end;
- begin
- broj:=0;
- for i:=1 to 8 do d[i]:=0;
- for i:=1 to 8 do dama(1,i);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement