PROGRAM Tetris;
USES
 crt,dos,graph;
TYPE
 Dane_kogos=RECORD
             Imie:STRING[20];
             Wynik:LONGINT
            END;
 f_plik=FILE OF Dane_kogos;
VAR
 Lista,Lista2:F_PLIK;
 Dane:DANE_KOGOS;
 czywpis,Licznik,wpis,wpis0:BYTE;
 rekord,rekord3,najwynik:LONGINT;
 rekord2,rekord4,snajwynik,spredkoscp,spredkosc,spunkty:STRING[20];
 poczatek2,kolor2,zapczas,poczatek,tlo,kolor,stob,figura,z,obrot:BYTE;
 przyo,rczasu,a,b,b1:SHORTINT;
 next,obrota,xykolor,xykolor2,xykolor3,xykolor4,predkoscp,predkosc,v1,v,zmiana:BYTE;
 koniec,l2,mlkolor,linia,linia2,linia3,linia4,kkolor,kkolor2,kkolor3,kkolor4,k,l,m,huj:BYTE;
 xp2,yp2,code,x,y,x2,y2,x3,y3,x4,y4,xa,ya,x2a,y2a,x3a,y3a,x4a,y4a,xb,yb,x2b,y2b,x3b,y3b,x4b,y4b,xk,yk,xp,yp,cos,cus:INTEGER;
 punkty,iloscl,czas,czas2:LONGINT;
 klawisz,czash,czasmin,czassec,czasms:WORD;
 przycisk,przycisk2,przycisk3,przycisk4:CHAR;
(********************************************************************)
PROCEDURE figurat;
BEGIN
 CASE obrot OF
  0:BEGIN
   x2:=x-z;
   y2:=y;
   x3:=x+z;
   y3:=y;
   x4:=x;
   y4:=y-z;
  END;
  1:BEGIN
   x2:=x;
   y2:=y+z;
   x3:=x+z;
   y3:=y;
   x4:=x;
   y4:=y-z;
  END;
  2:BEGIN
   x2:=x;
   y2:=y+z;
   x3:=x+z;
   y3:=y;
   x4:=x-z;
   y4:=y;
  END;
  3:BEGIN
   x2:=x;
   y2:=y+z;
   x3:=x;
   y3:=y-z;
   x4:=x-z;
   y4:=y;
  END;
 END;
END;
(********************************************************************)
PROCEDURE nogap;
BEGIN
 CASE obrot OF
  0:BEGIN
   x2:=x-z;
   y2:=y+z;
   x3:=x;
   y3:=y+z;
   x4:=x;
   y4:=y-z;
  END;
  1:BEGIN
   x2:=x-z;
   y2:=y;
   x3:=x+z;
   y3:=y;
   x4:=x-z;
   y4:=y-z;
  END;
  2:BEGIN
   x2:=x;
   y2:=y+z;
   x3:=x+z;
   y3:=y-z;
   x4:=x;
   y4:=y-z;
  END;
  3:BEGIN
   x2:=x+z;
   y2:=y+z;
   x3:=x+z;
   y3:=y;
   x4:=x-z;
   y4:=y;
  END;
 END;
END;
(********************************************************************)
PROCEDURE nogal;
BEGIN
 CASE obrot OF
  0:BEGIN
   x2:=x;
   y2:=y+z;
   x3:=x+z;
   y3:=y+z;
   x4:=x;
   y4:=y-z;
  END;
  1:BEGIN
   x2:=x-z;
   y2:=y+z;
   x3:=x+z;
   y3:=y;
   x4:=x-z;
   y4:=y;
  END;
  2:BEGIN
   x2:=x;
   y2:=y+z;
   x3:=x;
   y3:=y-z;
   x4:=x-z;
   y4:=y-z;
  END;
  3:BEGIN
   x2:=x-z;
   y2:=y;
   x3:=x+z;
   y3:=y;
   x4:=x+z;
   y4:=y-z;
  END;
 END;
END;
(********************************************************************)
PROCEDURE kwadrat;
BEGIN
 x2:=x;
 y2:=y+z;
 x3:=x+z;
 y3:=y+z;
 x4:=x+z;
 y4:=y;
END;
(********************************************************************)
PROCEDURE dlugi;
BEGIN
 CASE obrot OF
  0:BEGIN
   x2:=x;
   y2:=y+z;
   x3:=x;
   y3:=y-z;
   x4:=x;
   y4:=y-(2*z);
  END;
  1:BEGIN
   x2:=x-z;
   y2:=y;
   x3:=x+z;
   y3:=y;
   x4:=x+(2*z);
   y4:=y;
  END;
 END;
END;
(********************************************************************)
PROCEDURE figuraz;
BEGIN
 CASE obrot OF
  0:BEGIN
   x2:=x;
   y2:=y+z;
   x3:=x+z;
   y3:=y+z;
   x4:=x-z;
   y4:=y;
  END;
  1:BEGIN
   x2:=x-z;
   y2:=y+z;
   x3:=x-z;
   y3:=y;
   x4:=x;
   y4:=y-z;
  END;
 END;
END;
(********************************************************************)
PROCEDURE figuras;
BEGIN
 CASE obrot OF
  0:BEGIN
   x2:=x-z;
   y2:=y;
   x3:=x+z;
   y3:=y-z;
   x4:=x;
   y4:=y-z;
  END;
  1:BEGIN
   x2:=x+z;
   y2:=y+z;
   x3:=x+z;
   y3:=y;
   x4:=x;
   y4:=y-z;
  END;
 END;
END;
(********************************************************************)
FUNCTION WyborFigury(s:INTEGER):STRING;
BEGIN
 CASE s OF
  1:BEGIN
   figurat;
  END;
  2:BEGIN
   nogap;
  END;
  3:BEGIN
   nogal;
  END;
  4:BEGIN
   kwadrat;
  END;
  5:BEGIN
   dlugi;
  END;
  6:BEGIN
   figuraz;
  END;
  7:BEGIN
   figuras;
  END;
 END;
END;
(********************************************************************)
PROCEDURE CzyNieObok;
BEGIN
 xykolor:=tlo;
 xykolor2:=tlo;
 xykolor3:=tlo;
 xykolor4:=tlo;
 IF NOT (((xb=xa) AND (yb=ya)) OR ((xb=x2a) AND (yb=y2a)) OR ((xb=x3a) AND (yb=y3a)) OR ((xb=x4a) AND (yb=y4a))) THEN
 BEGIN
  xykolor:=getpixel(xb,yb);
 END;
 IF NOT (((x2b=xa) AND (y2b=ya)) OR ((x2b=x2a) AND (y2b=y2a)) OR ((x2b=x3a) AND (y2b=y3a)) OR ((x2b=x4a) AND (y2b=y4a))) THEN
 BEGIN
  xykolor2:=getpixel(x2b,y2b);
 END;
 IF NOT (((x3b=xa) AND (y3b=ya)) OR ((x3b=x2a) AND (y3b=y2a)) OR ((x3b=x3a) AND (y3b=y3a)) OR ((x3b=x4a) AND (y3b=y4a))) THEN
 BEGIN
  xykolor3:=getpixel(x3b,y3b);
 END;
 IF NOT (((x4b=xa) AND (y4b=ya)) OR ((x4b=x2a) AND (y4b=y2a)) OR ((x4b=x3a) AND (y4b=y3a)) OR ((x4b=x4a) AND (y4b=y4a))) THEN
 BEGIN
  xykolor4:=getpixel(x4b,y4b);
 END;
END;
(********************************************************************)
PROCEDURE NieMaObrotu;
BEGIN
 obrot:=obrota;
 WyborFigury(figura);
END;
(********************************************************************)
PROCEDURE PokazPunkty;
BEGIN
 {IF najwynik<punkty THEN najwynik:=punkty;}
 str(najwynik,snajwynik);
 str(punkty,spunkty);
 str(predkosc,spredkosc);
 setfillstyle(1,tlo);
 bar(xp2,yp2,xp2+123,yp2+78);
 outtextxy(xp2,yp2,'Najlepszy wynik:');
 outtextxy(xp2,yp2+10,snajwynik);
 outtextxy(xp2,yp2+23,'Punkty:');
 outtextxy(xp2,yp2+33,spunkty);
 outtextxy(xp2,yp2+46,'Predkosc:');
 outtextxy(xp2,yp2+56,spredkosc);
 outtextxy(xp2,yp2+69,'Nastepny:');
END;
(********************************************************************)
PROCEDURE RysujNext;
BEGIN
 x:=xp2+z;
 y:=yp2+82+2*z;
 obrot:=0;
 WyborFigury(next);
 setfillstyle(1,tlo);
 bar(x-z,y-2*z,x+2*z-1,y+2*z-1);
 CASE next OF
  1:kolor2:=14;
  2:kolor2:=10;
  3:kolor2:=2;
  4:kolor2:=4;
  5:kolor2:=11;
  6:kolor2:=9;
  7:kolor2:=1;
 END;
 setfillstyle(1,kolor2);
 bar(x,y,x+z-1,y+z-1);
 bar(x2,y2,x2+z-1,y2+z-1);
 bar(x3,y3,x3+z-1,y3+z-1);
 bar(x4,y4,x4+z-1,y4+z-1);
END;
(********************************************************************)
PROCEDURE ToPrzesun2;
BEGIN
 setfillstyle(1,tlo);
 bar(xp+1,yp+1+(l*z),xk-1,yp+1+(l*z)+z-1);
 FOR l:=l2-1 DOWNTO 0 DO
 BEGIN
  FOR m:=0 TO 9 DO
  BEGIN
   mlkolor:=getpixel(xp+1+(m*z),yp+1+(l*z));
   setfillstyle(1,mlkolor);
   bar(xp+1+(m*z),yp+1+((l+1)*z),xp+1+(m*z)+z-1,yp+1+((l+1)*z)+z-1);
  END;
  setfillstyle(1,tlo);
  bar(xp+1,yp+1+(l*z),xk-1,yp+1+(l*z)+z-1);
 END;
 iloscl:=iloscl+1;
 punkty:=punkty+(20*predkosc);
END;
(********************************************************************)
PROCEDURE ToPrzesun;
BEGIN
 IF linia=10 THEN
 BEGIN
  l2:=round((y-1-yp)/z);
  ToPrzesun2;
 END;
 IF linia2=10 THEN
 BEGIN
  l2:=round((y2-1-yp)/z);
  IF (linia=10) AND (y>y2) THEN l2:=l2+1;
  ToPrzesun2;
 END;
 IF linia3=10 THEN
 BEGIN
  l2:=round((y3-1-yp)/z);
  IF ((linia=10) AND (y>y3)) THEN l2:=l2+1;
  IF ((linia2=10) AND (y2>y3)) THEN l2:=l2+1;
  ToPrzesun2;
 END;
 IF linia4=10 THEN
 BEGIN
  l2:=round((y4-1-yp)/z);
  IF ((linia=10) AND (y>y4)) THEN l2:=l2+1;
  IF ((linia2=10) AND (y2>y4)) THEN l2:=l2+1;
  IF ((linia3=10) AND (y3>y4)) THEN l2:=l2+1;
  ToPrzesun2;
 END;
END;
(********************************************************************)
PROCEDURE CzyPrzesun;
BEGIN
 linia:=0;
 linia2:=0;
 linia3:=0;
 linia4:=0;
 FOR k:=0 TO 9 DO
 BEGIN
  kkolor:=getpixel(xp+1+(k*z),y);
  IF kkolor<>tlo THEN linia:=linia+1;
  IF y2<>y THEN
  BEGIN
   kkolor2:=getpixel(xp+1+(k*z),y2);
   IF kkolor2<>tlo THEN linia2:=linia2+1;
  END;
  IF (y3<>y) AND (y3<>y2) THEN
  BEGIN
   kkolor3:=getpixel(xp+1+(k*z),y3);
   IF kkolor3<>tlo THEN linia3:=linia3+1;
  END;
  IF (y4<>y) AND (y4<>y2) AND (y4<>y3) THEN
  BEGIN
   kkolor4:=getpixel(xp+1+(k*z),y4);
   IF kkolor4<>tlo THEN linia4:=linia4+1;
  END;
 END;
 IF (linia=10) OR (linia2=10) OR (linia3=10) OR (linia4=10) THEN ToPrzesun;
END;
(********************************************************************)
PROCEDURE Top_10;
BEGIN
 RESET(Lista);
 clrscr;
 TextColor(green);
 Writeln('              N  a J  I  e  P  s  Z  e      R  e  K  o  R  d  y');
 gotoxy(1,5);
 licznik:=0;
 WHILE NOT EoF(Lista) DO
 BEGIN
  licznik:=licznik+1;
  read(Lista,Dane);
  TextColor(yellow);
  IF (Dane.Wynik=punkty) AND (czywpis=1) THEN TextColor(blue);
  write('                 ',licznik:2,'.',Dane.Imie:20,' - ');
  write(Dane.Wynik:13);
  IF (Dane.Wynik=punkty) AND (czywpis=1) THEN
  BEGIN
   write(' (',predkosc,')');
   czywpis:=0;
  END;
  writeln;
 END;
 IF wpis0=0 THEN readkey;
 CLOSE(Lista);
END;
(********************************************************************)
PROCEDURE WpiszRekord;
BEGIN
 wpis0:=1;
 Top_10;
 RESET(Lista);
 wpis:=0;
 FOR Licznik:=0 TO 9 DO
 BEGIN
  SEEK(Lista,Licznik);
  read(Lista,Dane);
  CASE wpis OF
   1:BEGIN
    rekord3:=Dane.Wynik;
    rekord4:=Dane.Imie;
    Dane.Wynik:=rekord;
    Dane.Imie:=rekord2;
    wpis:=2;
   END;
   2:BEGIN
    rekord:=Dane.Wynik;
    rekord2:=Dane.Imie;
    Dane.Wynik:=rekord3;
    Dane.Imie:=rekord4;
    wpis:=1;
   END
  END;
  IF (punkty>Dane.Wynik) AND (wpis=0) THEN
  BEGIN
   czywpis:=1;
   rekord:=Dane.Wynik;
   rekord2:=Dane.Imie;
   wpis:=1;
   WriteLn;
   WriteLn('Wpisz swoje imie: ');
   WriteLn;
   ReadLn(Dane.Imie);
   Dane.Wynik:=punkty;
  END;
  SEEK(Lista,Licznik);
  write(Lista,Dane);
 END;
 CLOSE(Lista);
 wpis0:=0;
 Top_10;
END;
(********************************************************************)
PROCEDURE gra;
BEGIN
 RANDOMIZE;
 clrscr;
 cos:=9;
 cus:=2;
 InitGraph(cos,cus,'c:\\progra~1\\tp\\bgi\\');
 delay(900);
 tlo:=0;
 z:=15;
 xp:=170;
 yp:=round((getmaxy-(23*z))/2);
 xk:=xp+(10*z)+1;
 yk:=yp+(23*z)+1;
 xp2:=xk+20;
 yp2:=yp+90;
 rectangle(xp,yp,xk,yk);
 poczatek:=1;
 zapczas:=1;
 koniec:=0;
 next:=1+random(7);
 iloscl:=0;
 punkty:=0;
 poczatek2:=1;
 RESET(Lista);
 SEEK(Lista,0);
 read(lista,dane);
 najwynik:=Dane.Wynik;
 CLOSE(Lista);
 REPEAT
  przycisk4:=chr(0);
  IF poczatek=1 THEN
  BEGIN
   predkosc:=predkoscp+(iloscl DIV 5);
   v1:=round(1/(predkosc*7/1350+20/1350));
   IF v1<1 THEN v1:=1;
   IF v1>50 THEN v1:=50;
   v:=v1;
   PokazPunkty;
   a:=4;
   b:=-2;
   x:=xp+1+(a*z);
   y:=yp+1+(b*z);
   figura:=next;
   next:=1+random(7);
   RysujNext;
   CASE figura OF
    1:BEGIN   {figurat}
     stob:=4;
     kolor:=14;
    END;
    2:BEGIN   {nogap}
     stob:=4;
     kolor:=10;
    END;
    3:BEGIN   {nogal}
     stob:=4;
     kolor:=2;
    END;
    4:BEGIN   {kwadrat}
     stob:=1;
     kolor:=4;
    END;
    5:BEGIN   {dlugi}
     stob:=2;
     kolor:=11;
    END;
    6:BEGIN   {figuraz}
     stob:=2;
     kolor:=9;
    END;
    7:BEGIN   {figuras}
     stob:=2;
     kolor:=1;
    END;
   END;
   obrot:=random(stob);
   poczatek:=0;
  END;
  obrota:=obrot;
  huj:=0;
  IF keypressed THEN przycisk4:=readkey;
  klawisz:=ord(przycisk4);
  CASE klawisz OF
   75:BEGIN  {lewo}
    IF (x>1+xp+(0*z)) AND (x2>1+xp+(0*z)) AND (x3>1+xp+(0*z)) AND (x4>1+xp+(0*z)) THEN
    BEGIN
     xb:=x-z;
     yb:=y;
     x2b:=x2-z;
     y2b:=y2;
     x3b:=x3-z;
     y3b:=y3;
     x4b:=x4-z;
     y4b:=y4;
     CzyNieObok;
     IF NOT ((xykolor<>tlo) OR (xykolor2<>tlo) OR (xykolor3<>tlo) OR (xykolor4<>tlo)) THEN a:=a-1;
    END;
   END;
   77:BEGIN  {prawo}
    IF (x<1+xp+(9*z)) AND (x2<1+xp+(9*z)) AND (x3<1+xp+(9*z)) AND (x4<1+xp+(9*z)) THEN
    BEGIN
     xb:=x+z;
     yb:=y;
     x2b:=x2+z;
     y2b:=y2;
     x3b:=x3+z;
     y3b:=y3;
     x4b:=x4+z;
     y4b:=y4;
     CzyNieObok;
     IF NOT ((xykolor<>tlo) OR (xykolor2<>tlo) OR (xykolor3<>tlo) OR (xykolor4<>tlo)) THEN a:=a+1;
    END;
   END;
   72:BEGIN  {gora}
    xa:=x;
    ya:=y;
    x2a:=x2;
    y2a:=y2;
    x3a:=x3;
    y3a:=y3;
    x4a:=x4;
    y4a:=y4;
    huj:=1;
    obrot:=obrot+1;
    IF obrot=stob THEN obrot:=0;
    WyborFigury(figura);
    przyo:=0;
    WHILE (x<1+xp+(0*z)) OR (x2<1+xp+(0*z)) OR (x3<1+xp+(0*z)) OR (x4<1+xp+(0*z)) DO
    BEGIN
     przyo:=przyo+1;
     a:=a+1;
     x:=1+xp+(a*z);
     WyborFigury(figura);
    END;
    WHILE (x>1+xp+(9*z)) OR (x2>1+xp+(9*z)) OR (x3>1+xp+(9*z)) OR (x4>1+xp+(9*z)) DO
    BEGIN
     przyo:=przyo-1;
     a:=a-1;
     x:=1+xp+(a*z);
     WyborFigury(figura);
    END;
    xb:=x;
    yb:=y;
    x2b:=x2;
    y2b:=y2;
    x3b:=x3;
    y3b:=y3;
    x4b:=x4;
    y4b:=y4;
    CzyNieObok;
    IF (xykolor<>tlo) OR (xykolor2<>tlo) OR (xykolor3<>tlo) OR (xykolor4<>tlo) THEN
    BEGIN
     a:=a-przyo;
     NieMaObrotu;
    END;
   END;
   80:BEGIN  {dol}
    v:=0;
   END;
  END;
  IF v=0 THEN
  BEGIN
   xa:=x;
   ya:=y;
   x2a:=x2;
   y2a:=y2;
   x3a:=x3;
   y3a:=y3;
   x4a:=x4;
   y4a:=y4;
   xb:=x;
   yb:=y+2*z;
   x2b:=x2;
   y2b:=y2+2*z;
   x3b:=x3;
   y3b:=y3+2*z;
   x4b:=x4;
   y4b:=y4+2*z;
   CzyNieObok;
   b1:=b;
   IF (xykolor<>tlo) OR (xykolor2<>tlo) OR (xykolor3<>tlo) OR (xykolor4<>tlo) THEN
   BEGIN
    v:=round(1/(predkosc*9/3740+97/3740));
   END;
  END;
  IF b>b1+1 THEN v:=v1;
  IF zapczas=1 THEN
  BEGIN
   gettime(czash,czasmin,czassec,czasms);
   czas:=czasms;
   zapczas:=0;
  END;
  gettime(czash,czasmin,czassec,czasms);
  czas2:=czasms;
  rczasu:=czas2-czas;
  IF rczasu<0 THEN rczasu:=99-czas+czas2;
  IF rczasu>=v THEN
  BEGIN
   b:=b+1;
   zapczas:=1;
  END;
  IF huj=0 THEN
  BEGIN
   xa:=x;
   ya:=y;
   x2a:=x2;
   y2a:=y2;
   x3a:=x3;
   y3a:=y3;
   x4a:=x4;
   y4a:=y4;
  END;
  x:=xp+1+(a*z);
  y:=yp+1+(b*z);
  WyborFigury(figura);
  IF (x<>xa) OR (y<>ya) OR (obrot<>obrota) THEN
  BEGIN
   xb:=x;
   yb:=y;
   x2b:=x2;
   y2b:=y2;
   x3b:=x3;
   y3b:=y3;
   x4b:=x4;
   y4b:=y4;
   CzyNieObok;
   IF (xykolor<>tlo) OR (xykolor2<>tlo) OR (xykolor3<>tlo) OR (xykolor4<>tlo) THEN
   BEGIN
    x:=xa;
    y:=ya;
    x2:=x2a;
    y2:=y2a;
    x3:=x3a;
    y3:=y3a;
    x4:=x4a;
    y4:=y4a;
    IF (y<=yp+1+(-1*z)) OR (y2<=yp+1+(-1*z)) OR (y3<=yp+1+(-1*z)) OR (y4<=yp+1+(-1*z)) THEN koniec:=1;
    CzyPrzesun;
    poczatek:=1;
    zmiana:=2;
    punkty:=punkty+predkosc;
   END;
  END;
  IF (zmiana=0) AND (poczatek2=0) THEN
  BEGIN
   setfillstyle(1,tlo);
   IF (ya>yp-z+1) AND ((x<>xa) OR (y<>ya)) THEN bar(xa,ya,xa+z-1,ya+z-1);
   IF (y2a>yp-z+1) AND ((x2<>x2a) OR (y2<>y2a)) THEN bar(x2a,y2a,x2a+z-1,y2a+z-1);
   IF (y3a>yp-z+1) AND ((x3<>x3a) OR (y3<>y3a)) THEN bar(x3a,y3a,x3a+z-1,y3a+z-1);
   IF (y4a>yp-z+1) AND ((x4<>x4a) OR (y4<>y4a)) THEN bar(x4a,y4a,x4a+z-1,y4a+z-1);
  END;
  IF (y>=1+yp+(23*z)) OR (y2>=1+yp+(23*z)) OR (y3>=1+yp+(23*z)) OR (y4>=1+yp+(23*z)) THEN
  BEGIN
   CzyPrzesun;
   poczatek:=1;
   zmiana:=1;
   punkty:=punkty+predkosc;
  END
  ELSE
  BEGIN
   IF zmiana=2 THEN
   BEGIN
    zmiana:=1;
   END
   ELSE
   BEGIN
    zmiana:=0;
   END;
  END;
  setfillstyle(1,kolor);
  IF (y>yp-z+1) AND ((x<>xa) OR (y<>ya)) THEN bar(x,y,x+z-1,y+z-1);
  IF (y2>yp-z+1) AND ((x2<>x2a) OR (y2<>y2a)) THEN bar(x2,y2,x2+z-1,y2+z-1);
  IF (y3>yp-z+1) AND ((x3<>x3a) OR (y3<>y3a)) THEN bar(x3,y3,x3+z-1,y3+z-1);
  IF (y4>yp-z+1) AND ((x4<>x4a) OR (y4<>y4a)) THEN bar(x4,y4,x4+z-1,y4+z-1);
  poczatek2:=0;
  CASE klawisz OF
   112:BEGIN   {PAUSE}
    outtextxy(xp2,yp2+90+4*z,'<PAUZA> - Aby wyl. nacisnij "P"!');
    REPEAT
     delay(15);
     przycisk3:=readkey;
    UNTIL (przycisk3='p') OR (przycisk3='P') OR (przycisk3=chr(27));
    setfillstyle(1,tlo);
    bar(xp2,yp2+90+4*z,xp2+252,yp2+97+4*z);
    IF przycisk3=chr(27) THEN koniec:=2;
   END;
   27:BEGIN    {Esc}
    koniec:=2;
   END;
  END;
  IF koniec=2 THEN
  BEGIN
  outtextxy(xp2,yp2+90+4*z,'Czy napewno chcesz wyjsc? (T/N)');
   REPEAT przycisk3:=readkey;
   UNTIL (przycisk3='t') OR (przycisk3='n') OR (przycisk3='T') OR (przycisk3='N');
   IF (przycisk3='n') OR (przycisk3='N') THEN
   BEGIN
    setfillstyle(1,tlo);
    bar(xp2,yp2+90+4*z,xp2+244,yp2+97+4*z);
    koniec:=0;
   END;
  END;
 UNTIL koniec<>0;
 IF koniec=1 THEN readkey;
 closegraph;
 restorecrtmode;
 WpiszRekord;
END;
(********************************************************************)
PROCEDURE UstalPredkosc;
BEGIN
 clrscr;
 gotoxy(1,10);
 writeln('                                Ustal Predkosc:');
 writeln;
 writeln;
 writeln('Podaj predkosc poczatkowa od 1(wolno) do 10(szybko):');
 readln(spredkoscp);
 val(spredkoscp,predkoscp,code);
 IF (predkoscp<1) OR (predkoscp>10) OR (code<>0) THEN
 BEGIN
  writeln;
  Write('Niewlasciwa wartosc!');
  readkey;
  UstalPredkosc;
 END;
END;
(********************************************************************)
BEGIN
predkoscp:=10;
REPEAT
 czywpis:=0;
 ASSIGN(Lista,'C:\progra~1\tp\bin\tetris\top_10.cfg');
 ClrScr;
 gotoxy(1,10);
 TextColor(blue);
 writeln('                           T    E    T    R    I    S');
 TextColor(yellow);
 write('                           napisal: ');
 TextColor(60);
 writeln('Arkadiusz Burdach');
 gotoxy(1,13);
 TextColor(yellow);
 writeln('Wybierz jedna z opcji:');
 writeln;
 writeln('1   - Nowa Gra');
 writeln('2   - TOP 10');
 writeln('3   - Opcje');
 writeln('ESC - Wyjscie');
 przycisk:=readkey;
 IF (przycisk='1') OR (przycisk='2') OR (przycisk='3') OR (przycisk=chr(27)) THEN
 BEGIN
  IF przycisk='1' THEN Gra;
  IF przycisk='2' THEN Top_10;
  IF przycisk='3' THEN UstalPredkosc;
  IF przycisk=chr(27) THEN
  BEGIN
   clrscr;
   TextColor(red);
   gotoxy(26,12);
   writeln('Czy napewno chcesz WYJSC? (T/N)');
   REPEAT
    przycisk2:=readkey;
    IF  (przycisk2='t') OR (przycisk2='T') THEN
    BEGIN
     TextColor(green);
     gotoxy(34,14);
     write('To nazrazie.');
    END;
   UNTIL (przycisk2='T') OR (przycisk2='N') OR (przycisk2='t') OR (przycisk2='n') OR (przycisk2=chr(27));
  END;
 END;
UNTIL (przycisk=chr(27)) AND ((przycisk2='t') OR (przycisk2='T'))
END.
projects/tetrispas.txt · Last modified: 2010/07/25 18:16 (external edit)
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki