{ 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('ллмм \лмллмФГГ/лммммл'); 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.