{ 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.