{ X-FILES.PAS } { Author: Alexej Ostrouchov } { Date : 15.02.1997 http://www.trsek.com } uses crt,dos; var x,y,score,energy,i,xstrasidlo,strasidlo,kopia,key: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 Door; Begin TextColor(3); Gotoxy(20,13);Write(''); Gotoxy(20,14);Write(''); Gotoxy(20,15);Write(''); Gotoxy(20,16);Write(''); Gotoxy(20,17);Write(''); Gotoxy(20,18);Write(''); Gotoxy(20,19);Write(''); End; Procedure DoorDeath; Begin Clrscr; Door; TextColor(2); Gotoxy(9,14);Write(' '); Gotoxy(9,15);Write(''); Gotoxy(9,16);Write(' '); Gotoxy(9,17);Write(''); Gotoxy(9,18);Write(' '); Gotoxy(9,19);Write(' '); TextColor(1); Gotoxy(11,15);Write(''); Gotoxy(15,15);Write(''); Delay(800); TextColor(14); Gotoxy(1,16);Write(''); repeat until keypressed; 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 We; Begin TextColor(2); Gotoxy(23,19);Write(' '); Gotoxy(23,20);Write(''); Gotoxy(23,21);Write(' '); Gotoxy(23,22);Write(''); Gotoxy(23,23);Write(' '); Gotoxy(23,24);Write(' '); TextColor(1); Gotoxy(25,20);Write(''); Gotoxy(29,20);Write(''); End; Procedure DeathTeh; Begin Clrscr; TextColor(15); Gotoxy(20,10);Write(''); Gotoxy(20,11);Write(''); Gotoxy(20,12);Write(''); Gotoxy(20,13);Write(''); Gotoxy(20,14);Write(''); Gotoxy(20,15);Write(''); Gotoxy(20,16);Write(''); We; Delay(300); Clrscr; TextColor(15); Gotoxy(20,12);Write(''); Gotoxy(20,13);Write(''); Gotoxy(20,14);Write(''); Gotoxy(20,15);Write(''); Gotoxy(20,16);Write(''); Gotoxy(20,17);Write(''); Gotoxy(20,18);Write(''); Delay(200); Clrscr; TextColor(15); Gotoxy(20,15);Write(''); Gotoxy(20,16);Write(''); Gotoxy(20,17);Write(''); Gotoxy(20,18);Write(''); Gotoxy(20,19);Write(''); Gotoxy(20,20);Write(''); Gotoxy(20,21);Write(''); TextColor(4); Gotoxy(12,20);Write(' '); Gotoxy(12,21);Write(' '); Gotoxy(12,22);Write(' '); Gotoxy(36,20);Write(''); Gotoxy(36,21);Write(' '); Gotoxy(36,22);Write(' '); TextColor(2); Gotoxy(23,22);Write(''); Gotoxy(23,23);Write(' '); Gotoxy(23,24);Write(' '); Sound(40);Delay(200);ns; Delay(500); Clrscr; TextColor(15); Gotoxy(20,16);Write(''); Gotoxy(20,17);Write(''); Gotoxy(20,18);Write(''); Gotoxy(20,19);Write(''); Gotoxy(20,20);Write(''); Gotoxy(20,21);Write(''); Gotoxy(20,22);Write(''); TextColor(4); Gotoxy(12,21);Write(' '); Gotoxy(12,22);Write(' '); Gotoxy(12,23);Write(' '); Gotoxy(36,21);Write(' '); Gotoxy(36,22);Write(' '); Gotoxy(36,23);Write(' '); TextColor(2); Gotoxy(23,24);Write(' '); Delay(700); Clrscr; TextColor(15); Gotoxy(20,18);Write(''); Gotoxy(20,19);Write(''); Gotoxy(20,20);Write(''); Gotoxy(20,21);Write(''); Gotoxy(20,22);Write(''); Gotoxy(20,23);Write(''); Gotoxy(20,24);Write(''); TextColor(4); Gotoxy(12,21);Write(' '); Gotoxy(12,23);Write(' '); Gotoxy(36,22);Write(' '); Gotoxy(36,24);Write(' '); Delay(700); Gotoxy(12,23);Write(' '); Gotoxy(36,24);Write(' '); 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 } Clrscr; TextColor(14); Writeln('1. Starts sound on'); Writeln('2. Starts sound off'); Writeln('3. Nostart'); readln(s); If (s='3') Then Goto 1; If (s='1') Then Begin Clrscr; Demo; SoundD; Clrscr; Demo2; SoundD; Clrscr; Zac; SoundD; Goto 1; End; If (s='2') Then Begin Clrscr; Demo; Delay(2000); Clrscr; Demo2; Delay(2000); Goto 1; End; 1: ClrScr; EnergyDPic1; TextBackGround(0); TextColor(14); Gotoxy(15,23);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; Gotoxy(10,8);C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C; { Cesty Print End } { Pichlace Print } TextColor(7); Gotoxy(4,4);Write(chr(30));Write(chr(30)); Gotoxy(37,4);Pich;Pich; TextColor(7); Gotoxy(31,8);Write(''); { Pichlace Print end } strasidlo:=1; score:=0; energy:=100; x:=2; y:=3; key:=0; REPEAT ch:=readkey; TextColor(3); Gotoxy(28,24);Write(energy,'% '); TextColor(14); Gotoxy(27,23);Write('ENERGY'); { Keys } { 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; Delay(200); GameOver; Goto 1; End; If (strasidlo = 0) and (y=8) and (x=32) or (y=8) and (x=38) Then Begin TextColor(0);Gotoxy(74,1);Write('d'); End; { Strasidlo Function end } TextColor(3); Gotoxy(20,7);Write(''); If (key = 0) and (y=7) and (x=20) Then x:=x+1; If (key = 0) and (y=7) and (x<19) and (x>17) Then DoorDeath; { 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(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 x:=x-1;Sound(60);Delay(10);Nosound; If (ch='M') Then x:=x+1;Sound(60);Delay(10);Nosound; 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) and (y=5) and (x=37) Then Begin y:=y+3; Gotoxy(33,5);Write(' '); End; If (y=5) and (x>=32) and (x<=35) Then Begin y:=y+3; Gotoxy(31,5);Write(' '); End; If (y=5) and (x<=27) and (x>25) Then Begin y:=y+2; Gotoxy(25,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 (y=3) and (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 ((y=3) and (x=40)) Then Begin TextColor(4); Gotoxy(39,4);Med; Gotoxy(38,4);Pich; PichD; Goto 1; End; If (y=8) and (x=31) Then Begin TextColor(4); Gotoxy(x,y);Write(chr(2)); Repeat Until Keypressed; Goto 1; End; { Pichlace Function end } { Heards Finction } If (y=3) and (x=18) Then Begin Gotoxy(15,24);Her; End; If (y=3) and (x=19) Then Begin Gotoxy(16,24);Her; End; If (y=5) and (x=30) Then Begin Gotoxy(17,24);Her; End; If (y=5) and (x=31) Then Begin Gotoxy(18,24);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; { Steny end } UNTIL (ch=#27); END.