program domino_lerakas; uses crt; const dominodb=55; fekvosordb=3; allosordb=5; dominofekvo:array[1..fekvosordb] of string=('ÉÍÍËÍÍ»', 'º º º', 'ÈÍÍÊÍͼ'); dominoallo:array[1..allosordb] of string= ('ÉÍÍ»', 'º º', 'ÌÍ͹', 'º º', 'ÈÍͼ'); type szamjegy=integer; {nem ismerik a felsorolas t¡pust} domino=record egyik:szamjegy; masik:szamjegy; end; dominok=array[1..dominodb] of domino; pozicio=record x:integer; y:integer; fekvo:boolean; end; poziciok=array[1..2*dominodb] of pozicio; {kihaszn lom, hogy tobb helyet foglalok} Var poz:poziciok; dom:dominok; procedure dominoinic(var dom:dominok); var i,j:integer; k:integer; begin k:=0; for i:=0 to 9 do for j:=i to 9 do begin inc(k); dom[k].egyik:=i; dom[k].masik:=j; end; end; procedure pozinic(var poz:poziciok); {kigyozva tekeredo domino helyek} Const sorbandomino=10; var i:integer; kezd,veg:integer; begin kezd:=1; veg:=sorbandomino;i:=0; while i<=dominodb do begin for i:=kezd to veg do begin poz[i].x:=(kezd div (sorbandomino+1))*4+4; {hanyadik balrol jobbra halado vizszintes sor} poz[i].y:=5+((i mod (sorbandomino +1))-1)*7; {soron belul hol van} poz[i].fekvo:=true; end; poz[veg+1].x:=poz[veg].x+1; {sort lezaro  ll¢ domino} poz[veg+1].y:=7+poz[veg].y; {jobb oldalon} poz[veg+1].fekvo:=false; kezd:=veg+2; veg:=kezd+sorbandomino-1; for i:=kezd to veg do {jobbrol balra halado vizszintes sor} begin poz[i].x:=poz[kezd-1].x+3; poz[i].y:=poz[(veg-i+1) mod (veg+ 1)].y; poz[i].fekvo:=true; end; poz[veg+1].x:=poz[veg].x+1; {sort lezaro  ll¢ domino, bal oldalon} poz[veg+1].y:=1; poz[veg+1].fekvo:=false; kezd:=veg+2; veg:=kezd+sorbandomino-1; end; end; procedure lerak(hova:integer;poz:poziciok;melyiket:integer;dom:dominok); var i:integer; begin if poz[hova].fekvo then begin for i:=1 to fekvosordb do begin gotoxy(poz[hova].y,poz[hova].x+i-1); write(dominofekvo[i]); end; gotoxy(poz[hova].y+1,poz[hova].x+1); write(dom[melyiket].egyik); gotoxy(poz[hova].y+5,poz[hova].x+1); write(dom[melyiket].masik); end else begin for i:=1 to allosordb do begin gotoxy(poz[hova].y,poz[hova].x+i-1); write(dominoallo[i]); end; gotoxy(poz[hova].y+1,poz[hova].x+1); write(dom[melyiket].egyik); gotoxy(poz[hova].y+1,poz[hova].x+3); write(dom[melyiket].masik); end; end; var i:integer; x:array[1..dominodb+1] of integer; begin clrscr; writeln; writeln('Domino lerak si probl‚ma':52); writeln; writeln; pozinic(poz); dominoinic(dom); for i:=1 to dominodb do x[i]:=i; {e sor helyett irja meg a back-trackes keres‚st} for i:=1 to 55 do lerak(i,poz,x[i],dom); readln; end.