program vezer; {A feladatunk a 8 vezer problema megoldasa.} uses newdelay,crt,dos; const vezerdb=8; sordb=8; sorszelesseg=5; kockamag=2; Type eredmeny=array[1..vezerdb] of integer; pozicio=record sor,oszlop:integer; fekete:boolean; end; poziciok=array[1..vezerdb,1..vezerdb] of pozicio; kocka=array[1..kockamag] of string[20]; Const k:kocka=('²²²²²', '²²²²²'); var poz:poziciok; hi,mi,si,ci,ha,ma,sa,ca:word; i1,i2,i3,i4,i5,i6,i7,i8:integer; jo:boolean; x:eredmeny; i,j:integer; melyik:integer; van:boolean; function rosszeset(i:integer; melyik:integer):boolean; var j:integer; begin j:=1; while (j=ci then c:=ca-ci else begin c:=ca+100-ci; sa:=sa-1; end; If sa>=si then s:=sa-si else begin s:=sa+60-si; ma:=ma-1; end; If ma>=mi then m:=ma-mi else begin m:=ma+60-mi; ha:=ha-1; end; h:=ha-hi; gotoxy(1,24); writeln('Eltelt id‹:',h,' ',m,' ',s,' ',c); end; procedure pozinic(var poz:poziciok); {sakktablan a helyek} var i,j:integer; begin for i:=1 to sordb do for j:=1 to sordb do begin poz[i,j].sor:=i*5+10; poz[i,j].oszlop:=j*2+4; poz[i,j].fekete:=((i+j) mod 2)=1; end; end; procedure vezerki(i,j:integer); begin Highvideo; textcolor(black); gotoxy(poz[i,j].sor+2,poz[i,j].oszlop); write('±'); gotoxy(poz[i,j].sor+1,poz[i,j].oszlop+1); write('±±±'); textcolor(white); Lowvideo; end; procedure kockaki(i,j:integer); begin gotoxy(poz[i,j].sor,poz[i,j].oszlop); if poz[i,j].fekete then textcolor(lightgray) else textcolor(white); write(k[1]); gotoxy(poz[i,j].sor,poz[i,j].oszlop+1); write(k[2]); end; procedure sakktablaki; var i,j:integer; begin gotoxy(poz[1,1].sor-1,poz[1,1].oszlop-1); write('É') ; for i:=1 to sordb*sorszelesseg+1 do begin write('Í'); end; write('»'); gotoxy(poz[1,sordb].sor-1,poz[1,sordb].oszlop+kockamag); write('È'); for i:=1 to sordb*sorszelesseg+1 do begin write('Í'); end; write('¼'); for i:=1 to sordb*kockamag do begin gotoxy(poz[1,1].sor-1,poz[1,1].oszlop+i-1); write('º'); end; for i:=1 to sordb*kockamag do begin gotoxy(poz[sordb,1].sor+sorszelesseg+1,poz[sordb,1].oszlop+i-1); write('º'); end; for i:=1 to sordb do for j:=1 to sordb do begin kockaki(i,j) end; end; begin TextBackGround(blue); TextColor(white); clrscr; writeln; writeln('Vez‚r elhelyez‚si probl‚ma':52); writeln; writeln; pozinic(poz); sakktablaki; oraindul; {ide kell beirni a vezerek elhelyezeset} i:=1; for j:=1 to 8 do x[j]:=0; while (i>=1) and (i<=8) do begin Van_jo_eset(i,melyik,van); if van then begin x[i]:=melyik; inc(i); end else begin x[i]:=0; dec(i); end; end; oraallj; for i:=1 to vezerdb do vezerki(i,x[i]); readln; end.