Hra - nieèo ako krí¾enec DOOMa a Diggera
Delphi & Pascal (èeská wiki)
Kategórie: KMP (Programy mladých programátorù)
Autor: Alexej Ostrouchov
Program: X-file_r.pas
Soubor exe: X-file_r.exe
Potøebné: X-files.pas
Autor: Alexej Ostrouchov
Program: X-file_r.pas
Soubor exe: X-file_r.exe
Potøebné: X-files.pas
Hra - nieèo ako krí¾enec DOOMa a Diggera. Celá urobená v textovom re¾ime s dobrými a vtipnými nápadmi.
{ X-FILE_R.PAS } { Author: Alexej Ostrouchov } { Date : 15.02.1997 http://www.trsek.com } uses crt,dos,trsek; var x,y,score,energy,i,xstrasidlo,strasidlo,kopia:integer; ch:char; f:text; s:string; Label 1; Label 2; Procedure GameOver; Begin Clrscr; TextColor(4); Gotoxy(1,10);Write(' ÛÛÜÜÛÛ ÜßßÛÛßÜ '); Gotoxy(1,11);Write(' Ûß Ûß Û ÛÛ ß ÛÛ '); Gotoxy(1,12);Write('ÛÛÜ ß ß ÜÛÛÜÛ ÛÛ ÛÛ ÛßßßÛ Û ß ß Û Û Û ÛßßßÛ ÛßßÛÛ '); Gotoxy(1,13);Write(' ÛÛß ÜÜÜ Ûß Ûß Û ÛÛ ÛÜÛ Û Ûß ßÛ Ûß ßÛ Ûß Ûß Û Û '); Gotoxy(1,14);Write('Ü ÛÛ Û ß Û Û Û Û Û Ûßß ÛÛ ÛÛ ß Û Û Ûßß ÛßÛÛÛ '); Gotoxy(1,15);Write(' ß ÛÜÜÛßÛ ß ß ßÛÛß ßß ÛÛßß ÛÛßßÛ Û ÛÛ ÛÛßß Û ß Û '); Repeat Until KeyPressed; End; Procedure Blood; Begin TextColor(1); Gotoxy(38,21);Write('Û'); Gotoxy(42,21);Write('Û'); End; Procedure EnergyDPic1; Begin TextColor(2); Gotoxy(35,20);Write(' ÜÜÜÜÜÜÜ'); Gotoxy(35,21);Write(' ÛÛÛÛÛÛÛÛÛ'); Gotoxy(35,22);Write(' ÛÛÛÛ ÛÛÛÛ'); Gotoxy(35,23);Write(' ÛÛÛÛÛÛÛÛÛ'); Gotoxy(35,24);Write(' ÛÛ ÛÛ'); Gotoxy(35,25);Write(' ßßßßßßß'); Blood; End; Procedure EnergyDPic2; Begin EnergyDPic1; TextColor(4); Gotoxy(40,25);Write('ßÛß'); End; Procedure EnergyDPic3; Begin EnergyDPic2; TextColor(4); Gotoxy(40,22);Write('ÜÛ'); Gotoxy(40,23);Write('Û'); End; Procedure EnergyDPic4; Begin EnergyDPic3; TextColor(4); Gotoxy(39,23);Write('Û'); Gotoxy(39,24);Write('ß'); Gotoxy(38,25);Write('ÛÛ'); End; Procedure EnergyDPic5; Begin EnergyDPic4; TextColor(4); Gotoxy(37,24);Write('Û'); Gotoxy(37,22);Write('ÛÛ'); Gotoxy(37,23);Write('Û'); Gotoxy(42,23);Write('ÛÛ'); Gotoxy(43,24);Write('Û'); End; Procedure Pich; Begin Write(chr(30));Write(chr(30)); End; Procedure PDPic1; Begin TextColor(2); Gotoxy(10,10);Write('ÜÜÜÛÛßÛ'); Gotoxy(10,11);Write(' ÛÛÛÛ'); Gotoxy(10,12);Write(' ÛÛÛÛÛÛ'); Gotoxy(10,13);Write(' ÛÛÛÛÛ'); Gotoxy(10,14);Write('ßßßßßßÛÛÛÛÛÛ'); TextColor(7); Gotoxy(10,11);Write(''); Gotoxy(10,13);Pich;Pich;Write(chr(30)); End; Procedure Ns; Begin Nosound; End; Procedure PDPic2; Begin TextColor(2); Gotoxy(10,10);Write('ÜÜÜÛÛßÛ'); Gotoxy(10,11);Write(' ÛÛÛÛ'); Gotoxy(10,12);Write(' ÛÛÛÛÛÛ'); Gotoxy(10,13);Write('ßßßßßÛÛÛÛÛ'); Gotoxy(10,14);Write(' ÛÛÛÛÛ'); TextColor(4); Gotoxy(10,11);Write(''); Gotoxy(10,12);Write(''); End; Procedure PriseraDeath; Begin Clrscr; PDPic1;Delay(600); Sound(30);Delay(100);Ns; PDPic2;Delay(500); PDPic1; TextColor(4); Gotoxy(10,11);Write(''); Gotoxy(10,13);Write(''); Gotoxy(12,12);Write(' '); Delay(1000); PDPic1; TextColor(4); Gotoxy(10,11);Write(''); Gotoxy(10,12);Write(' '); Gotoxy(10,13);Write(''); Gotoxy(12,12);Write(' '); Delay(400); Delay(3000); GameOver; End; Procedure Liv; Begin Write(chr(4)); Sound(90);Delay(200);Nosound; End; Procedure En; Begin TextColor(4); Write(chr(4)); End; Procedure Zac; Begin TextColor(1); Gotoxy(25,10);Write(chr(65));Write(' ');Write(chr(71));Write(chr(65));Write(chr(77)); Gotoxy(30,10);Write(chr(69));Write(' ');Write(chr(66));Write(chr(89)); Gotoxy(17,12);Write(chr(65));Write(chr(76));Write(chr(69));Write(chr(88));Write(chr(69));Write(chr(74)); Gotoxy(29,12);Write(chr(79));Write(chr(83));Write(chr(84));Write(chr(82));Write(chr(79));Write(chr(85)); Gotoxy(35,12);Write(chr(67));Write(chr(72));Write(chr(79));Write(chr(86)); End; Procedure Demo; Begin TextColor(4); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(' ÛßÜÜÛßÛÛ Ü ÜÛÛßÜÜ ßÛÛÜß '); Writeln(' Ûß ß ß Ûß ß ßÛ Û Û '); Writeln(' ÛßÛÛß ÛÛßÜÛß ÜÛÛ ß '); Writeln(' ÛÛ Û ÛÜ ß Û '); Writeln(' ÛÛßßÜÛßÛÜ ÜßßÛßÛ ß ÛßßÜÛß '); Writeln(' ß ß Û '); TextColor(1); Writeln(' Software present'); End; Procedure Demo2; Begin TextColor(4); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(''); Writeln(' '); Writeln(' ÛÜ ÜÛ '); Writeln(' ß Û ßÛ ÛßÜÜÛßÛ Û '); Writeln(' ÛßÜ ÛßÛ ÛÜ ß Û ÛßÜÜÛ ÛÛÜÜ '); Writeln(' ßÛÛÜß Ü ßßß ß ÛÛÜÜ Û Û Ûß ß Û ß '); Writeln(' Ûß ÛÜ Û ß Û Û Ûß Ü ßßÛÜ '); Writeln(' Ûß ßÛ Ûß Û ßßßß ß ÛÜÛÜ ßÛÜÜÛ '); Writeln(' Û '); End; Procedure DeathTeh; Begin Clrscr; TextColor(2); Gotoxy(10,10);Write(chr(2)); TextColor(15); Gotoxy(10,7);Write('Û'); Sound(900); Delay(500); Gotoxy(10,7);Write(' '); Gotoxy(10,8);Write('Û'); Delay(200); Gotoxy(10,8);Write(' '); Gotoxy(10,9);Write('Û'); Delay(200); TextColor(4); Gotoxy(10,9);Write(' '); Gotoxy(10,10);Write('Û'); Sound(20);Delay(300);Nosound; Delay(300); Gotoxy(9,10);Write('\'); Gotoxy(11,10);Write('/'); Delay(300); Gotoxy(8,10);Write('ÄÄ'); Gotoxy(11,10);Write('ÄÄ'); Delay(300); Gotoxy(7,10);Write('__/'); Gotoxy(11,10);Write('\__'); Delay(1000); GameOver; End; Procedure PichD; Begin TextColor (4); y:=y+1; Sound(20);Delay(200);Nosound; Repeat Gotoxy(x,y);Write(chr(2)); Until KeyPressed; End; Procedure SoundD; Begin Sound(20); Delay(500);Ns;Delay(100); Sound(200); Delay(500);Ns;Delay(100); Sound(300); Delay(500);Ns;Delay(100); Sound(20); Delay(500);Ns;Delay(100); Sound(300); Delay(500);Ns;Delay(100); Sound(300); Delay(500);Ns;Delay(100); Sound(20); Delay(500);Ns;Delay(100); Sound(300); Delay(500);Ns;Delay(100); End; Procedure Her; Begin TextColor(14); Write(chr(3)); End; Procedure El; Begin TextColor(14+Blink); Write('Û'); End; Procedure Elev; Begin TextColor(6); Write(chr(18)); End; Procedure Med; Begin Write(' '); End; Procedure Prep; Begin Clrscr; For i:=1 to 20 do Writeln(chr(2)); End; Procedure C; Begin TextColor(1); Write('Û'); End; BEGIN { Zaciatok Programu } TextColor(14); TextBackGround(0); Clrscr; Writeln('1. Starts sound on'); Writeln('2. Starts sound off'); Writeln('3. Nostart'); readln(s); { Nemusi byt tato podmienka } { If (s='3') Then Goto 1;} If (s='1') Then Begin Clrscr; Demo; SoundD; Clrscr; Demo2; SoundD; Clrscr; Zac; SoundD; End; If (s='2') Then Begin Clrscr; Demo; Delay(2000); Clrscr; Demo2; Delay(2000); End; 1: ClrScr; EnergyDPic1; TextBackGround(0); TextColor(2); Gotoxy(65,5);Write(' Heards '); { Hearts print } Gotoxy(18,3);Her;Her; Gotoxy(30,5);Her;Her; { Heards print end } { Cesty Print } TextColor(1); Gotoxy(1,4);Write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ'); Gotoxy(27,6);C;C;C;C;C; Gotoxy(40,7);C;C;C;C;C;C;C; Gotoxy(40,6);C; Gotoxy(44,8);C; Gotoxy(30,9);C;C;C;C;C;C;C;C;C;C;C;C;C;C;C; { Cesty Print End } TextColor(7); { Pichlace Print } Gotoxy(4,4);Write(chr(30));Write(chr(30)); Gotoxy(37,4);Pich;Pich; { Pichlace Print end } strasidlo:=1; score:=0; energy:=100; x:=2; y:=3; gotoxy(1,23);write('Pohyb sipkami, PgUp,PgDown ....'); REPEAT if keypressed then ch:=Readkey else ch:=#10; TextColor(14); Gotoxy(69,16); Write(energy,'% '); { Srasidlo Function } {1} If strasidlo = 1 Then Begin TextColor(2); Xstrasidlo:=Random(8); Gotoxy(32,8);Write(' '); Gotoxy(xstrasidlo+32,8);Write(chr(12)); End; If strasidlo = 0 Then Begin TextColor(2); Xstrasidlo:=Random(8); Gotoxy(32,8);Write(' '); Gotoxy(xstrasidlo+32,8);Write(' '); End; If (strasidlo = 1) and (y=8) and (x>=32) and (x<=37) Then Begin PriseraDeath; Goto 1; End; If (strasidlo = 0) and ((y=8) and (x=32)) or ((y=8) and (x=38)) Then x:=x+1; { Strasidlo Function end } { Strasidlo Death } If (energy > 80) and (energy < 101) Then EnergyDPic1; If (energy > 60) and (energy < 80) Then EnergyDPic2; If (energy > 40) and (energy < 60) Then EnergyDPic3; If (energy > 20) and (energy < 40) Then EnergyDPic4; If (energy > 1 ) and (energy < 20) Then EnergyDPic5; { Tlacitko } TextColor(1); Gotoxy(25,3);Write('_'); If (y=3) and (x=25) Then Begin DeathTeh; Goto 1; End; TextColor(1); Gotoxy(36,3);Write('_'); If (y=3) and (x=36) Then strasidlo:= 0; { Strasidlo } { Strasidlo end } { Tlacitko End } TextColor(1); Gotoxy(25,3);Write('_'); If (y=3) and (x=25) Then Begin DeathTeh; Goto 1; End; TextColor(1); Gotoxy(36,3);Write('_'); If (y=3) and (x=36) Then strasidlo:= 0; { Strasidlo } { Strasidlo end } { Tlacitko End } If energy < 0 Then Begin ClrScr; TextColor(2); Gotoxy(23,10);Write(' ÜÜÜÜÜÜÜ'); Gotoxy(23,11);Write('ÛÛÛÛÛÛÛÛÛ'); Gotoxy(23,12);Write('ÛÛÛÛ ÛÛÛÛ'); Gotoxy(23,13);Write('ÛÛÛÛÛÛÛÛÛ'); Gotoxy(23,14);Write('ÛÛ ÛÛ'); Gotoxy(23,15);Write(' ßßßßßßß'); TextColor(1); Gotoxy(25,11);Write('Û'); Gotoxy(29,11);Write('Û'); Delay(800); Clrscr; TextColor(4); Gotoxy(20,10);Write('Û /ÄÄÄÄÄÄÄÄ\'); Gotoxy(20,11);Write('Ü Û³ ÛÛ'); Gotoxy(20,12);Write(' ÜÛÜÛ Û ³Üß'); Gotoxy(20,13);Write(' Û³Û Û'); Gotoxy(20,14);Write(' Ü³ß ß³Û Û'); Gotoxy(20,15);Write('Û \ÄÛßÛÜÄÄÄ/ ß'); TextColor(7); Gotoxy(25,11);Write('Ü Ü'); Gotoxy(27,13);Write('ßß'); Gotoxy(25,14);Write('||||||'); Sound(40);Delay(200);Ns;Delay(100); Clrscr; TextColor(4); Gotoxy(20,10);Write(' /ÄÄÄÄÄÄÄÄ\'); Gotoxy(20,11);Write(' ³ Û'); Gotoxy(20,12);Write('Û Ü Û ³Ü'); Gotoxy(20,13);Write('ß Û³Û Û Û Û ß'); Gotoxy(20,14);Write(' ß ³ß ß³ '); Gotoxy(20,15);Write(' Û \ÄÄÄÛÜÄÄÄ/ Û Û'); TextColor(7); Gotoxy(25,11);Write('Ü Ü'); Gotoxy(27,13);Write('ßß'); Gotoxy(25,14);Write('||||||'); Delay(300); Clrscr; TextColor(4); Gotoxy(18,10);Write(' /ÄÄÄÄÄÄÄÄ\'); Gotoxy(18,11);Write(' ³ ³'); Gotoxy(18,12);Write(' ³ ³Ü'); Gotoxy(18,13);Write(' Û³Û ÛÛÛ '); Gotoxy(18,14);Write(' ³ß ß³ ß'); Gotoxy(18,15);Write('ÛÜÜÜ \ÄÄÄÛÛÜÄÄÄ/ ÜÜÜÜÛ'); TextColor(7); Gotoxy(25,11);Write('Ü Ü'); Gotoxy(27,13);Write('ßß'); Gotoxy(25,14);Write('||||||'); Delay(300); Clrscr; TextColor(4); Gotoxy(18,10);Write(' /ÄÄÄÄÄÄÄÄ\'); Gotoxy(18,11);Write(' ³ ³'); Gotoxy(18,12);Write(' ³ ³ '); Gotoxy(18,13);Write(' ³ ³ '); Gotoxy(18,14);Write(' ³ ³ Ü'); Gotoxy(18,15);Write('ÛÛÜÜ \ÛÜÛÛÜÄÄÄ/ÛÜÜÜÜÛ'); TextColor(7); Gotoxy(25,11);Write('Ü Ü'); Gotoxy(27,13);Write('ßß'); Gotoxy(25,14);Write('||||||'); Delay(300); Clrscr; TextColor(4); Gotoxy(18,10);Write(' '); Gotoxy(18,11);Write(' ³ /³ ³ ³Ä\ ³'); Gotoxy(18,12);Write(' ³ ³³ '); Gotoxy(18,13);Write(' Ä ³ ³ ³ '); Gotoxy(18,14);Write(' ³ Ä Ü'); Gotoxy(18,15);Write('ÛÛÜÜ \ÛÜÛÛÜÄÄÄ/ÛÜÜÜÜÛ'); TextColor(7); Gotoxy(25,12);Write('Ü ß'); Gotoxy(27,14);Write('ßÛ'); Gotoxy(25,14);Write('|||| '); Gotoxy(29,15);Write('-|'); Delay(300); Clrscr; TextColor(4); Gotoxy(18,10);Write(' '); Gotoxy(18,11);Write(' ³ '); Gotoxy(18,12);Write(' ³ - ³ - ³\ '); Gotoxy(18,13);Write(' / Ä ³³ ³ ³³- '); Gotoxy(18,14);Write(' ³ Ä Ü'); Gotoxy(18,15);Write('ÛÛÜÜ \ÛÜÛÛÜÄÄÄ/ÛÜÜÜÜÛ'); TextColor(7); Gotoxy(25,13);Write('Ü ß'); Gotoxy(27,15);Write('ßÛ'); Gotoxy(25,15);Write('---- '); Gotoxy(29,15);Write('--'); Delay(300); Clrscr; TextColor(4); Gotoxy(18,14);Write(' - ³ - ³ -- Ø -Ü'); Gotoxy(18,15);Write('ÛÛÜÜ \ÛÜÛÛÜij³/ÛÜÜÜÜÛ'); TextColor(7); Gotoxy(25,15);Write('Ü ß'); Gotoxy(27,15);Write('ßÛ'); Gotoxy(25,15);Write('---- '); Gotoxy(29,15);Write('--'); Delay(1000); GameOver; Goto 1; End; TextColor(2); Gotoxy(x,y);Write(' '); If (ch='K') Then begin x:=x-1;Sound(60);Delay(10);Nosound;end; If (ch='M') Then begin x:=x+1;Sound(60);Delay(10);Nosound;end; If (ch='I') Then Begin y:=y-1;Gotoxy(x,y);Write('');Delay(200);Gotoxy(x,y);Write(' '); x:=x+3;Gotoxy(x,y);Write('');Delay(200);Gotoxy(x,y);Write(' '); y:=y+1;Gotoxy(x,y);Write('');Delay(200);Gotoxy(x,y);Write(' '); Sound(400);Delay(10);Nosound; End; If (ch='G') Then Begin y:=y-1;Gotoxy(x,y);Write('');Delay(200);Gotoxy(x,y);Write(' '); x:=x-3;Gotoxy(x,y);Write('');Delay(200);Gotoxy(x,y);Write(' '); y:=y+1;Gotoxy(x,y);Write('');Delay(200);Gotoxy(x,y);Write(' '); Sound(400);Delay(10);Nosound; End; TextColor(14); If (ch=' ') Then Begin For i:= x to x+3 do Write('Ä'); Sound(200);Delay(100);Ns; Gotoxy(x,y); For i:= x to x+4 do Write(' '); End; TextColor(2); Gotoxy(x,y);Write(chr(2)); { Prepadliska } If (y=3) and (x=28) Then Begin y:=y+2; Gotoxy(28,3);Med; Sound(300);Delay(250);Ns; End; If (y=5) and ((x=33) or (x=37)) Then Begin y:=y+3; Gotoxy(33,5);Write(' '); End; { Prepadliska end } { Elektrina Print } TextColor(14); Gotoxy(12,3);El;El; { Elektrina Print end } { Elektrina Function } If (y=3) and ((x=12) or (x=13)) Then Begin energy:=energy-11; End; { Elektrina Function end } { Elevator print } Gotoxy(35,3);Elev; Gotoxy(46,6);Elev; Gotoxy(41,6);En; If (y=6) and (x=41) Then Energy:=100; { Pichlace Function } If ((y=3) and (x=4)) or ((y=3) and (x=5)) Then Begin TextColor(4); Gotoxy(4,3);Write(' '); Gotoxy(4,4);Pich; PichD; Goto 1; End; If (y=3) and ((x=37) or (x=38)) Then Begin TextColor(4); Gotoxy(37,4);Med; Gotoxy(38,4);Write(chr(30)); PichD; Goto 1; End; If (y=3) and ((x=39) or (x=40)) Then Begin TextColor(4); Gotoxy(39,4);Med; Gotoxy(38,4);Pich; PichD; Goto 1; End; { Pichlace Function end } { Heards Finction } If (y=3) and (x=18) Then Begin Gotoxy(65,6);Her; End; If (y=3) and (x=19) Then Begin Gotoxy(66,6);Her; End; If (y=5) and (x=30) Then Begin Gotoxy(67,6);Her; End; If (y=5) and (x=31) Then Begin Gotoxy(68,6);Her; End; { Hearts Function End } { El. Function } If (y=3) and (x=35) Then Begin x:=x+9; y:=y+3; Sound(100);Delay(100); Sound(200);Delay(100); Sound(300);Delay(150); Sound(100);Delay(100); Sound(200);Delay(100); Sound(300);Delay(150); Ns; End; If (y=6) and (x=46) Then Begin y:=y-3; x:=x-12; Sound(100);Delay(100); Sound(200);Delay(100); Sound(300);Delay(150); Sound(100);Delay(100); Sound(200);Delay(100); Sound(300);Delay(150); Ns; End; { El.Function end } { Steny } If (y=6) and (x=41) Then x:=x+1; If (y=8) and (x=43) Then x:=x-1; KurzorZap(false); delay(30); { Steny end } UNTIL (ch=#27); END.