Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program niebezpiecznaPredkosc;
- uses crt,dos;
- var tab:array [1..16,1..20] of char;
- przeszkoda:array [1..10,1..16,1..240] of char;
- idziesz,menu:char;
- i,j,poziom,nextlvl,liczbaPrzeszkod,zyje,wyborZyc,liczbaZyc,menuWybor,menuWybor2,menuWybor3,menuWybor4,
- licze,pauzaa,mozeszJeszczeRaz:byte;
- Hour,Min,Sec,HSec:word;
- czas,przechowujeJakisCzas,szybkosc,a,b,s:longint;
- label zdechl,dalej,powrotDoMenu,pauza,koniecPauzy;
- procedure wyswietl;
- var x,y:byte;
- begin
- for x:=2 to 15 do begin
- for y:=1 to 20 do begin
- tab[x,y]:=#176;
- gotoxy(30+x,3+y);
- tab[x,y]:=przeszkoda[poziom,x,y];
- write(tab[x,y]);gotoxy(x+30,3+y)
- end;
- end;end;
- procedure sciana;begin
- for j:=1 to 20 do begin
- tab[1,j]:=#178;
- gotoxy(31,j+3);
- write(tab[1,j]);
- tab[16,j]:=#178;
- gotoxy(46,j+3);
- write(tab[16,j]);
- end;end;
- procedure przeszkody;
- var x,y,z,czyPostawie:byte;
- begin randomize;
- for z:=1 to 10 do begin
- for y:=1 to 240 do begin
- for x:=2 to 15 do begin
- przeszkoda[z,x,y]:=('°');
- end;
- end;
- end;
- for z:=1 to 10 do begin
- for y:=21 to 220 do begin
- for x:=2 to 15 do begin
- czyPostawie:=random(5)+1;
- if (czyPostawie=2)AND(przeszkoda[z,x,y]<>#178)AND(licze<liczbaPrzeszkod) then begin
- licze:=licze+1;
- przeszkoda[z,x,y]:=#178;end;
- end;
- licze:=0;
- end;
- end;
- end;
- procedure ruchMapy;
- var x,y : byte;
- begin
- for x:=2 to 15 do begin
- for y:=1 to 20 do begin
- if tab[x,y]=#178 then
- tab[x,y]:=#176;gotoxy(30+x,3+y);write(tab[x,y]);
- end;
- end;
- for x:=2 to 15 do begin
- for y:=a to b do begin
- s:=s+1;
- if przeszkoda[poziom,x,y]=#178 then begin
- tab[x,s]:=przeszkoda[poziom,x,y];
- gotoxy(30+x,s+3);write(tab[x,s]);
- end;
- end;
- s:=0;gotoxy(1,3);write(' ');gotoxy(1,3);write('Stan zmiennej a: ',a);
- end;
- if a<2 then begin nextlvl:=1;end ELSE begin a:=a-1;b:=b-1;end;
- end;
- procedure sprawdzMnie;
- var x : byte;
- begin
- zyje:=0;
- for x:=2 to 15 do begin
- if tab[x,20]=#30 then zyje:=1;
- end;
- end;
- procedure ruch(i,j:byte);
- begin
- tab[i,j]:=#30;
- gotoxy(30+i,3+j);write(tab[i,j]);
- end;
- procedure lvl;
- begin
- gotoxy(35,1);write('Poziom: ',poziom);
- end;
- procedure zycia;
- begin
- gotoxy(35,2);write(' ');
- gotoxy(35,2);write('Zycia: ',liczbaZyc);
- end;
- function obliczSzybkosc(poziom:byte):byte;
- begin
- obliczSzybkosc:=50-(poziom-1)*3;
- if poziom=1 then szybkosc:=obliczSzybkosc;
- end;
- procedure Timer;
- begin
- REPEAT
- GetTime(Hour,Min,Sec,Hsec);
- czas:=(3600*hour+60*Min+Sec)*1000+Hsec;
- IF przechowujeJakisCzas<=czas then begin
- przechowujeJakisCzas:=czas+szybkosc;
- ruchMapy;sprawdzMnie;
- if nextlvl=1 then begin
- poziom:=poziom+1;
- if poziom=11 then begin gotoxy(31,24);textcolor(red);
- write('Przeszedles cala gre');textcolor(7);przeszkody;poziom:=1;nextlvl:=0;delay(2000);goto zdechl;end;
- a:=221;b:=240;
- szybkosc:=obliczSzybkosc(poziom);{50-(poziom-1)*3;}lvl;
- nextlvl:=0;
- end;
- end;
- gotoxy(1,4);writeln('Czas kolejnego ruchu(',szybkosc,');');
- write('predkosc(',70-szybkosc,')');
- if zyje=0 then begin
- a:=221;b:=240;liczbaZyc:=liczbaZyc-1;zycia;zyje:=1;if liczbaZyc=0 then goto zdechl;
- gotoxy(31,24);textcolor(red);write('Straciles zycie');textcolor(7);ruchMapy;
- goto dalej;end;
- gotoxy(1,1);write(czas);gotoxy(3,24);write(wyborZyc,' Pod g masz cheat >nextlvl<');
- UNTIL keypressed;
- end;
- procedure instrukcja;
- begin
- TextBackGround(0);textcolor(7);writeln('');writeln('');TextBackGround(LightGray);textcolor(0);
- gotoxy(6,1);writeln(#201#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#187);
- gotoxy(6,2);write(#186, ' ');textcolor(LightBlue); write('OPIS GRY');textcolor(0);writeln(' ',#186);
- gotoxy(6,3);writeln(#200#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#188); textcolor(7); TextBackGround(0);
- TextBackGround(LightGray);textcolor(LightBlue);
- gotoxy(6,4);writeln(' "Niebezpieczna Predkosc" - jest gra zreczniosciowa. ');
- gotoxy(6,5);writeln(' Fabula tej gry jest bardzo prosta. Siedzimy w samochodzie ');
- gotoxy(6,6);writeln(' z zablokowana predkoscia, nie mozemy ani hamowac ani przyspieszac. ');
- gotoxy(6,7);writeln(' Naszym zadaniem jest omijanie przeszkod. Wraz z nastepnymi ');
- gotoxy(6,8);writeln(' poziomami zwieksza sie predkosc pojazdu jak i ilosc przeszkod. ');
- gotoxy(6,9);writeln(' Zalezie od trudnosci mamy rozna ilosc zyc jak i zmienia sie gestosc ');
- gotoxy(6,10);writeln(' przeszkod. Gra posiada lacznie 10 lvl, co po ich przejściu? ');
- gotoxy(6,11);writeln(' Dowiedz sie sam, skup sie to nie bedzie trasa wycieczkowa ! ');
- gotoxy(6,12);writeln(' ');
- TextBackGround(0);textcolor(7);writeln('');writeln('');TextBackGround(LightGray);textcolor(0);
- gotoxy(25,14);writeln(#201#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#187);
- gotoxy(25,15);write(#186, ' ');textcolor(LightBlue); write('KLAWISZOLOGIA');textcolor(0);writeln(' ',#186);
- gotoxy(25,16);writeln(#200#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#188); textcolor(7); TextBackGround(0);
- gotoxy(25,17);TextBackGround(LightGray);textcolor(LightBlue);writeln(' a - ruch w lewo ');
- gotoxy(25,18);writeln(' d - ruch w prawo ');
- gotoxy(25,19);writeln(' z - wyjscie ');
- gotoxy(25,20);writeln(' p - pauza ');
- gotoxy(8,22);writeln(' Kliknij dowolny klawisz aby wrocic do glownego menu ');
- gotoxy(8,24);writeln(' Gre wykonal Konrad Rul klasa 2TG ');textcolor(7); TextBackGround(0); TextBackGround(0);textcolor(7);
- end;
- procedure pokazMenu(ktoreMenu:byte);
- begin
- REPEAT gotoxy(1,1);
- case ktoreMenu of
- 1: begin
- TextBackGround(LightGray);textcolor(0);writeln(#201#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#187);
- write(#186, ' ');textcolor(LightBlue); write('NIEBEZPIECZNA PREDKOSC');textcolor(0);writeln(' ',#186);
- writeln(#200#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#188); textcolor(7); TextBackGround(0);
- menu:=readkey;
- if (menu='w')OR(menu='W') then begin
- if menuWybor<4 then menuWybor:=menuWybor+1;end;
- if (menu='s')OR(menu='S') then begin
- if menuWybor>1 then menuWybor:=menuWybor-1;end;
- case menuWybor of
- 4: begin TextBackGround(LightGray);textcolor(LightBlue);writeln(' NOWA GRA');TextBackGround(0);textcolor(7);
- writeln('POZIOM TRUDNOSCI ');writeln('INSTRUKCJA ');writeln('WYJDZ ');end;
- 3: begin writeln('NOWA GRA ');TextBackGround(LightGray);textcolor(LightBlue);
- writeln(' POZIOM TRUDNOSCI');TextBackGround(0);textcolor(7);writeln('INSTRUKCJA ');writeln('WYJDZ ');end;
- 2: begin writeln('NOWA GRA ');writeln('POZIOM TRUDNOSCI ');
- TextBackGround(LightGray);textcolor(LightBlue);writeln(' INSTRUKCJA');TextBackGround(0);textcolor(7);writeln('WYJDZ ');end;
- 1: begin writeln('NOWA GRA ');writeln('POZIOM TRUDNOSCI ');
- writeln('INSTRUKCJA ');TextBackGround(LightGray);textcolor(LightBlue);writeln(' WYJDZ');TextBackGround(0);textcolor(7);end;
- end;end;
- 2: begin
- TextBackGround(LightGray);textcolor(0);writeln(#201#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#187);
- write(#186, ' ');textcolor(LightBlue); write('POZIOM TRUDNOSCI');textcolor(0);writeln(' ',#186);
- writeln(#200#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#188); textcolor(7); TextBackGround(0);
- menu:=readkey;
- if (menu='W')OR(menu='w') then begin
- if menuWybor2<4 then menuWybor2:=menuWybor2+1;end;
- if (menu='S')OR(menu='s') then begin
- if menuWybor2>1 then menuWybor2:=menuWybor2-1;end;
- case menuWybor2 of
- 4: begin TextBackGround(LightGray);textcolor(LightBlue);writeln(' PROSTY');TextBackGround(0);textcolor(7);writeln('NORMALNY ');writeln('TRUDNY ');writeln(#174,' GLOWNE MENU ');end;
- 3: begin writeln('PROSTY ');TextBackGround(LightGray);textcolor(LightBlue);writeln(' NORMALNY');TextBackGround(0);textcolor(7);writeln('TRUDNY ');writeln(#174, ' GLOWNE MENU ');end;
- 2: begin writeln('PROSTY ');writeln('NORMALNY ');TextBackGround(LightGray);textcolor(LightBlue);writeln(' TRUDNY');TextBackGround(0);textcolor(7);writeln(#174, ' GLOWNE MENU ');end;
- 1: begin writeln('PROSTY ');writeln('NORMALNY ');writeln('TRUDNY ');TextBackGround(LightGray);textcolor(LightBlue);writeln(' ', #174, ' GLOWNE MENU');TextBackGround(0);textcolor(7);end;
- end;end;
- 3: begin
- TextBackGround(LightGray);textcolor(LightBlue);writeln(' Czy chcesz zagrac jeszcze raz? ');TextBackGround(0);textcolor(7);
- menu:=readkey;
- if (menu='W')OR(menu='w') then begin
- if menuWybor3<2 then menuWybor3:=menuWybor3+1;end;
- if (menu='S')OR(menu='s') then begin
- if menuWybor3>1 then menuWybor3:=menuWybor3-1;end;
- case menuWybor3 of
- 2: begin TextBackGround(LightGray);textcolor(LightBlue);writeln(' TAK');TextBackGround(0);textcolor(7);writeln('NIE ');end;
- 1: begin textcolor(7);writeln('TAK ');TextBackGround(LightGray);textcolor(LightBlue);writeln(' NIE');TextBackGround(0);textcolor(7);end;end;end;
- 4: begin
- menu:=readkey;
- gotoxy(1,2);
- if (menu='s')OR(menu='S') then begin
- if menuWybor4<10 then menuWybor4:=menuWybor4+1;end;
- if (menu='w')OR(menu='W') then begin
- if menuWybor4>1 then menuWybor4:=menuWybor4-1;end;
- for a:=1 to 10 do begin
- if menuWybor4 = a then begin
- TextBackGround(LightGray);textcolor(LightBlue);writeln(a);TextBackGround(0);textcolor(7);poziom:=menuWybor4;
- end ELSE begin writeln(a);end;
- end;gotoxy(1,1);end;
- end;
- UNTIL menu=#13; end;
- begin clrscr;
- REPEAT
- {config}
- a:=221;b:=240;poziom:=1;szybkosc:=50;liczbaPrzeszkod:=4;wyborZyc:=6;
- {..config} powrotDoMenu:clrscr;menuWybor:=4;
- TextBackGround(LightGray);textcolor(0);writeln(#201#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#187);
- write(#186, ' ');textcolor(LightBlue); write(' POZIOM TRUDNOSCI ');textcolor(0);writeln(' ',#186);
- writeln(#200#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#188); textcolor(7); TextBackGround(0);
- TextBackGround(LightGray);textcolor(LightBlue);writeln(' NOWA GRA');TextBackGround(0);textcolor(7);writeln('POZIOM TRUDNOSCI');writeln('INSTRUKCJA');write('WYJDZ');
- pokazMenu(1);if menuWybor=1 then goto zdechl;clrscr;
- if menuWybor=3 then begin
- clrscr;menuWybor2:=4;writeln;writeln;
- textcolor(green);writeln('POZIOM TRUDNOSCI');textcolor(7);
- TextBackGround(LightGray);textcolor(LightBlue);writeln(' PROSTY');TextBackGround(0);textcolor(7);writeln('NORMALNY');writeln('TRUDNY');writeln(#174, ' GLOWNE MENU ');
- pokazMenu(2);
- if menuWybor2=4 then begin liczbaPrzeszkod:=3;wyborZyc:=9;goto powrotDoMenu;end;
- if menuWybor2=3 then begin liczbaPrzeszkod:=4;wyborZyc:=6;goto powrotDoMenu;end;
- if menuWybor2=2 then begin liczbaPrzeszkod:=5;wyborZyc:=3;goto powrotDoMenu;end;
- if menuWybor2=1 then goto powrotDoMenu;end;
- if menuWybor=2 then begin instrukcja;
- readkey;goto powrotDoMenu;end;
- clrscr;
- liczbaZyc:=wyborZyc;
- przeszkody;
- dalej:
- sciana;zycia;lvl;
- wyswietl;
- i:=9;j:=20;
- ruch(9,20);
- REPEAT
- timer;
- if pauzaa=1 then begin pauza: gotoxy(37,24);textcolor(red);write('PAUZA');textcolor(7);
- REPEAT idziesz:=readkey;UNTIL (idziesz='p')OR(idziesz='P');idziesz:='w';
- goto koniecPauzy;end;
- idziesz:=readkey;koniecPauzy:
- gotoxy(31,24);write(' ');
- case idziesz of
- 'a','A': begin if tab[i-1,j]<>#178 then begin tab[i,j]:=#176;gotoxy(30+i,3+j);write(tab[i,j]);i:=i-1;ruch(i,j);end;end;
- 'd','D': begin if tab[i+1,j]<>#178 then begin tab[i,j]:=#176;gotoxy(30+i,3+j);write(tab[i,j]);i:=i+1;ruch(i,j);end;end;
- 'g': begin nextlvl:=1; end;
- 'p': begin goto pauza; end;
- end;
- UNTIL idziesz='z';
- UNTIL idziesz='z';
- zdechl:clrscr;
- gotoxy(1,2);TextBackGround(LightGray);textcolor(LightBlue);writeln(' TAK');TextBackGround(0);textcolor(7);writeln('NIE ');menuWybor3:=2;
- Pokazmenu(3);
- if menuWybor3=2 then begin a:=221;b:=240;liczbaZyc:=wyborZyc;mozeszJeszczeRaz:=mozeszJeszczeRaz+1;
- if mozeszJeszczeRaz=3 then begin przeszkody;poziom:=1;mozeszJeszczeRaz:=0;end;obliczSzybkosc(poziom);clrscr;goto dalej;end;
- if menuWybor3=1 then begin clrscr;write('Koniec gry'); end;
- delay(2000);
- end.
Advertisement
Add Comment
Please, Sign In to add comment