Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROGRAM XXXX;
- {********************************************
- * X X X X 2 - The ultimative DOOM 2-Clone *
- * *
- * Author: B.M”ller *
- * Publisher: B™MMSOFT (Germany) *
- * *
- * Date of begin: 14.04.95 *
- * Date of end : __.__.__ *
- ********************************************}
- USES Crt;
- VAR dead,enemy:STRING[10];
- x,y,m,a,w20,expX,expY,Moveit,maxF,udx,udy,feldx,feldy:INTEGER;
- armour,bullets,bombs,missles,pow,acc,lp,af,tp,sc,aliennr:LONGINT;
- score,scorealt,level:LONGINT;
- posx,posy,Hits,schaden,SP1x,sp2x,sp3x,sp4x,sp5x,sp1y,sp2y,sp3y,sp4y,sp5y:INTEGER;
- Ch:CHAR;
- vP1x,vp2x,vp3x,vp4x,vp5x,vp1y,vp2y,vp3y,vp4y,vp5y:INTEGER;
- {$I B”mmsoft.log}
- PROCEDURE Explode; FORWARD;
- PROCEDURE Blood;
- BEGIN
- textcolor(red);
- for y:=1 to 22 do begin
- gotoxy(1,y);
- for a:=1 to 80 do write('Û');
- gotoxy(1,y+1);
- for a:=1 to 80 do begin
- m:=random(2)+1;
- if m=1 then write('Û');
- if m=2 then write(' ');
- end;
- gotoxy(1,y+2);
- for a:=1 to 80 do begin
- m:=random(2)+1;
- if m=1 then write('³');
- if m=2 then write(' ');
- end;
- gotoxy(1,y+3);
- for a:=1 to 80 do begin
- m:=random(2)+1;
- if m=1 then write('ß');
- if m=2 then write(' ');
- end;
- delay(127);
- if y=10 then nosound;
- end;
- gotoxy(1,22);
- for a:=1 to 80 do write('Û');
- delay(127);
- gotoxy(1,23);
- for a:=1 to 80 do write('Û');
- delay(127);
- gotoxy(1,24);
- for a:=1 to 80 do write('Û');
- delay(1000);
- END;
- PROCEDURE Intro;
- BEGIN
- clrscr;
- Boemmsoft_Logo;
- gotoxy(36,18);
- textcolor(white);
- write('presents');
- delay(2000);
- clrscr;
- delay(1000);
- textcolor(red);
- write(' ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²± ');
- write(' ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²± ');
- write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°');
- write('Û° ²²²²± ²²²²²²± Û°');
- write('Û°ÛÛÛ° ÛÛÛ°ÛÛÛ° ÛÛÛ°ÛÛÛ° ²²²±ÛÛÛ°ÛÛÛ° ÛÛÛ°Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ²²²²±ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ²²²²±ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ°²²²²±ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ°²²±ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ²²ÛÛÛ°±ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛÛ° ÛÛÛÛ° ²²²²±ÛÛÛÛ° ÛÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ²²²±ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ²²²±ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° ²²²²±ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ°²²²±ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û° ÛÛÛ° ÛÛÛ° ÛÛÛ° ²ÛÛÛ°²±ÛÛÛ° ÛÛÛ° ÛÛÛ° ÛÛÛ° Û°');
- write('Û°ÛÛÛ° ÛÛÛ°ÛÛÛ° ²²²ÛÛÛ°ÛÛÛ° ÛÛÛ°ÛÛÛ° ÛÛÛ°Û°');
- write('Û° ²²²²²²²²²± Û°');
- write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°');
- write(' ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²± ');
- write(' ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²± ');
- writeln;
- writeln(' Û Û Ûß Û Û ÛßÛ Û Û Ûß ÛßÛ ÛßÛ ßÛß Û Û');
- writeln(' Û ÛÛ Û Û Û Û ÛÛ Û ÛÛ ÛßÛ ÛßÛ Û ÛÛÛ');
- write(' Û Û ÛÜ ÛÜ ÛÜ ÛÜÛ Û ßÛ ÛÜ Û Û Û Û Û Û Û');
- gotoxy(39,20);
- write('VERSION 1.2');
- readln;
- Blood;
- clrscr;
- delay(1000);
- textcolor(7);
- writeln;
- writeln('To get known the controlling of "XXXX 2" type `HELP` in your Game-directory!');
- writeln;
- writeln(' I hope you enjoy blasting the demons back to hell...');
- writeln;
- writeln(' If there`s any problem with this game call:');
- writeln;
- textcolor(red);
- writeln(' Germany, 04122-######');
- textcolor(8);
- writeln;
- writeln(' Why are you waiting? Press <RETURN> to start demon-kicking...');
- readln;
- Blood;
- clrscr;
- delay(1000);
- END;
- PROCEDURE Init_Hero;
- BEGIN
- Scorealt:=0;
- Score:=0;
- Level:=1;
- Armour:=5000;
- Bullets:=1000;
- Bombs:=10;
- Missles:=3;
- POW:=8;
- ACC:=10;
- END;
- PROCEDURE Status;
- BEGIN
- textcolor(0);
- textbackground(7);
- window(1,23,80,25);
- clrscr;
- window(1,24,16,24);
- write('SCORE: ',score);
- window(1,25,16,25);
- write('LEVEL: ',level);
- window(18,24,32,24);
- write('ARMOUR: ',armour);
- window(18,25,32,25);
- write('ACCURANCE: ',acc);
- window(34,24,48,24);
- write('GUNPOWER: ',pow);
- window(34,25,48,25);
- write('BULLETS: ',bullets);
- window(50,24,67,24);
- write('BOMBS: ',bombs);
- window(50,25,67,25);
- write('H-MISSLES: ',missles);
- window(69,23,80,25);
- gotoxy(2,1); write('XXXX 2');
- gotoxy(2,2); write('¸ 1995');
- gotoxy(1,3); write('B™MMSOFT');
- textbackground(0);
- textcolor(0);
- window(1,1,80,22);
- END;
- PROCEDURE Init_Crosswire;
- BEGIN
- textcolor(white);
- Posx:=40;
- Posy:=11;
- gotoxy(Posx-1,Posy);
- write('ÄÅÄ');
- END;
- PROCEDURE Feind1;
- begin
- expx:=37;
- expy:=11;
- Moveit:=10;
- Maxf:=2;
- lp:=10; af:=5; tp:=6; sc:=7;
- aliennr:=1;
- vp1x:=-1;
- vp1y:=0;
- vp2x:=0;
- vp2y:=0;
- vp3x:=1;
- vp3y:=0;
- vp4x:=0;
- vp4y:=1;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind2;
- begin
- expx:=38;
- expy:=17;
- Moveit:=6;
- MaxF:=1;
- lp:=20; af:=7; tp:=5; sc:=11;
- aliennr:=2;
- vp1x:=-9;
- vp1y:=-3;
- vp2x:=-8;
- vp2y:=-3;
- vp3x:=-7;
- vp3y:=-3;
- vp4x:=-6;
- vp4y:=-3;
- vp5x:=-5;
- vp5y:=1-3;
- end;
- PROCEDURE Feind4;
- begin
- expx:=28;
- expy:=17;
- Moveit:=4;
- MaxF:=1;
- lp:=40; af:=9; tp:=12; sc:=20;
- aliennr:=4;
- vp1x:=4;
- vp1y:=3-4;
- vp2x:=5;
- vp2y:=4-4;
- vp3x:=5;
- vp3y:=5-4;
- vp4x:=10000;
- vp4y:=10000;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind5;
- begin
- expx:=39;
- expy:=13;
- Moveit:=1;
- MaxF:=1;
- lp:=50; af:=10; tp:=20; sc:=26;
- aliennr:=5;
- vp1x:=0;
- vp1y:=-1;
- vp2x:=-1;
- vp2y:=0;
- vp3x:=0;
- vp3y:=0;
- vp4x:=1;
- vp4y:=0;
- vp5x:=0;
- vp5y:=1;
- end;
- PROCEDURE Feind7;
- begin
- EXPX:=52;
- EXPY:=11;
- Moveit:=15;
- MaxF:=4;
- lp:=5; af:=5; tp:=100; sc:=36;
- aliennr:=7;
- vp1x:=3;
- vp1y:=-4;
- vp2x:=1;
- vp2y:=-1;
- vp3x:=0;
- vp3y:=-1;
- vp4x:=-1;
- vp4y:=-1;
- vp5x:=2;
- vp5y:=-1;
- end;
- PROCEDURE Feind8;
- begin
- expx:=37; expy:=11;
- Moveit:=8;
- MaxF:=2;
- lp:=75; af:=12; tp:=25; sc:=37;
- aliennr:=8;
- vp1x:=0;
- vp1y:=2;
- vp2x:=1;
- vp2y:=2;
- vp3x:=10000;
- vp3y:=10000;
- vp4x:=10000;
- vp4y:=10000;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind9;
- begin
- expx:=13;
- expy:=8;
- Moveit:=3;
- MaxF:=1;
- lp:=100; af:=11; tp:=30; sc:=47;
- aliennr:=9;
- vp1x:=-2;
- vp1y:=-2;
- vp2x:=-1;
- vp2y:=-2;
- vp3x:=0;
- vp3y:=-2;
- vp4x:=10000;
- vp4y:=10000;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind12;
- begin
- expx:=15;
- expy:=5;
- Moveit:=16;
- MaxF:=10;
- lp:=200; af:=18; tp:=5; sc:=74;
- aliennr:=12;
- vp1x:=-2;
- vp1y:=1;
- vp2x:=-1;
- vp2y:=1;
- vp3x:=0;
- vp3y:=1;
- vp4x:=1;
- vp4y:=1;
- vp5x:=2;
- vp5y:=1;
- end;
- PROCEDURE Feind14;
- begin
- expx:=40;
- expy:=11;
- Moveit:=4;
- MaxF:=1;
- lp:=200; af:=13; tp:=40; sc:=84;
- aliennr:=14;
- vp1x:=-5;
- vp1y:=0;
- vp2x:=-5;
- vp2y:=1;
- vp3x:=5;
- vp3y:=0;
- vp4x:=5;
- vp4y:=1;
- vp5x:=0;
- vp5y:=3;
- end;
- PROCEDURE Feind17;
- begin
- expx:=40;
- expy:=17;
- Moveit:=1;
- MaxF:=1;
- lp:=500; af:=15; tp:=100; sc:=205;
- aliennr:=17;
- vp1x:=0;
- vp1y:=0;
- vp2x:=10000;
- vp2y:=10000;
- vp3x:=10000;
- vp3y:=10000;
- vp4x:=10000;
- vp4y:=10000;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind3;
- begin
- expx:=37;
- expy:=11;
- Moveit:=10;
- Maxf:=2;
- lp:=30; af:=10; tp:=12; sc:=17;
- aliennr:=3;
- vp1x:=-1;
- vp1y:=0;
- vp2x:=0;
- vp2y:=0;
- vp3x:=1;
- vp3y:=0;
- vp4x:=0;
- vp4y:=1;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind6;
- begin
- expx:=38;
- expy:=17;
- Moveit:=6;
- MaxF:=1;
- lp:=60; af:=14; tp:=10; sc:=28;
- aliennr:=6;
- vp1x:=-9;
- vp1y:=-3;
- vp2x:=-8;
- vp2y:=-3;
- vp3x:=-7;
- vp3y:=-3;
- vp4x:=-6;
- vp4y:=-3;
- vp5x:=-5;
- vp5y:=1-3;
- end;
- PROCEDURE Feind10;
- begin
- expx:=28;
- expy:=17;
- Moveit:=4;
- MaxF:=1;
- lp:=120; af:=18; tp:=24; sc:=54;
- aliennr:=10;
- vp1x:=4;
- vp1y:=3-4;
- vp2x:=5;
- vp2y:=4-4;
- vp3x:=5;
- vp3y:=5-4;
- vp4x:=10000;
- vp4y:=10000;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind11;
- begin
- expx:=39;
- expy:=13;
- Moveit:=1;
- MaxF:=1;
- lp:=150; af:=20; tp:=40; sc:=70;
- aliennr:=11;
- vp1x:=0;
- vp1y:=-1;
- vp2x:=-1;
- vp2y:=0;
- vp3x:=0;
- vp3y:=0;
- vp4x:=1;
- vp4y:=0;
- vp5x:=0;
- vp5y:=1;
- end;
- PROCEDURE Feind13;
- begin
- EXPX:=52;
- EXPY:=11;
- Moveit:=15;
- MaxF:=4;
- lp:=15; af:=10; tp:=200; sc:=75;
- aliennr:=13;
- vp1x:=3;
- vp1y:=-4;
- vp2x:=1;
- vp2y:=-1;
- vp3x:=0;
- vp3y:=-1;
- vp4x:=-1;
- vp4y:=-1;
- vp5x:=2;
- vp5y:=-1;
- end;
- PROCEDURE Feind15;
- begin
- expx:=37; expy:=11;
- Moveit:=8;
- MaxF:=2;
- lp:=225; af:=20; tp:=50; sc:=98;
- aliennr:=15;
- vp1x:=0;
- vp1y:=2;
- vp2x:=1;
- vp2y:=2;
- vp3x:=10000;
- vp3y:=10000;
- vp4x:=10000;
- vp4y:=10000;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind16;
- begin
- expx:=13;
- expy:=8;
- Moveit:=3;
- MaxF:=1;
- lp:=300; af:=20; tp:=60; sc:=127;
- aliennr:=16;
- vp1x:=-2;
- vp1y:=-2;
- vp2x:=-1;
- vp2y:=-2;
- vp3x:=0;
- vp3y:=-2;
- vp4x:=10000;
- vp4y:=10000;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Feind18;
- begin
- expx:=15;
- expy:=5;
- Moveit:=16;
- MaxF:=10;
- lp:=600; af:=20; tp:=15; sc:=210;
- aliennr:=18;
- vp1x:=-2;
- vp1y:=1;
- vp2x:=-1;
- vp2y:=1;
- vp3x:=0;
- vp3y:=1;
- vp4x:=1;
- vp4y:=1;
- vp5x:=2;
- vp5y:=1;
- end;
- PROCEDURE Feind19;
- begin
- expx:=40;
- expy:=11;
- Moveit:=4;
- MaxF:=1;
- lp:=600; af:=20; tp:=80; sc:=233;
- aliennr:=19;
- vp1x:=-5;
- vp1y:=0;
- vp2x:=-5;
- vp2y:=1;
- vp3x:=5;
- vp3y:=0;
- vp4x:=5;
- vp4y:=1;
- vp5x:=0;
- vp5y:=3;
- end;
- PROCEDURE Feind20;
- begin
- expx:=40;
- expy:=17;
- Moveit:=1;
- MaxF:=1;
- lp:=1500; af:=20; tp:=200; sc:=573;
- aliennr:=20;
- vp1x:=0;
- vp1y:=0;
- vp2x:=10000;
- vp2y:=10000;
- vp3x:=10000;
- vp3y:=10000;
- vp4x:=10000;
- vp4y:=10000;
- vp5x:=10000;
- vp5y:=10000;
- end;
- PROCEDURE Enemychoose;
- BEGIN
- sp1x:=0;
- sp1y:=0;
- sp2x:=0;
- sp2y:=0;
- sp3x:=0;
- sp3y:=0;
- sp4x:=0;
- sp4y:=0;
- sp5x:=0;
- sp5y:=0;
- w20:=random(20)+1;
- IF Level>=20 then enemy:='13-19';
- IF Level<19 then enemy:='10-17';
- IF Level<17 then enemy:='8-17';
- IF Level<13 then enemy:='5-17';
- IF Level<11 then enemy:='5-14';
- IF Level<8 then enemy:='4-11';
- IF Level<6 then enemy:='3-8';
- IF Level<4 then enemy:='2-5';
- IF Level<3 then enemy:='1-4';
- IF (Level>18) and (w20>16) then enemy:='20';
- IF enemy='1-4' then begin
- a:=random(4)+1;
- if a=1 then Feind1;
- if a=2 then Feind2;
- if a=3 then Feind3;
- if a=4 then Feind4;
- end;
- IF enemy='2-5' then begin
- a:=random(4)+1;
- if a=1 then Feind2;
- if a=2 then Feind3;
- if a=3 then Feind4;
- if a=4 then Feind5;
- end;
- IF enemy='3-8' then begin
- a:=random(6)+1;
- if a=1 then Feind3;
- if a=2 then Feind4;
- if a=3 then Feind5;
- if a=4 then Feind6;
- if a=5 then Feind7;
- if a=6 then Feind8;
- end;
- IF enemy='4-11' then begin
- a:=random(8)+1;
- if a=1 then Feind4;
- if a=2 then Feind5;
- if a=3 then Feind6;
- if a=4 then Feind7;
- if a=5 then Feind8;
- if a=6 then Feind9;
- if a=7 then Feind10;
- if a=8 then Feind1;
- end;
- IF enemy='5-14' then begin
- a:=random(10)+1;
- if a=1 then Feind5;
- if a=2 then Feind6;
- if a=3 then Feind7;
- if a=4 then Feind8;
- if a=5 then Feind9;
- if a=6 then Feind10;
- if a=7 then Feind11;
- if a=8 then Feind12;
- if a=9 then Feind13;
- if a=10 then Feind14;
- end;
- IF enemy='5-17' then begin
- a:=random(13)+1;
- if a=1 then Feind5;
- if a=2 then Feind6;
- if a=3 then Feind7;
- if a=4 then Feind8;
- if a=5 then Feind9;
- if a=6 then Feind10;
- if a=7 then Feind11;
- if a=8 then Feind12;
- if a=9 then Feind13;
- if a=10then Feind14;
- if a=11then Feind15;
- if a=12then Feind16;
- if a=13then Feind17;
- end;
- IF enemy='8-17' then begin
- a:=random(10)+1;
- if a=1 then Feind8;
- if a=2 then Feind9;
- if a=3 then Feind10;
- if a=4 then Feind11;
- if a=5 then Feind12;
- if a=6 then Feind13;
- if a=7 then Feind14;
- if a=8 then Feind15;
- if a=9 then Feind16;
- if a=10 then Feind17;
- end;
- IF enemy='10-17' then begin
- a:=random(8)+1;
- if a=1 then Feind10;
- if a=2 then Feind11;
- if a=3 then Feind12;
- if a=4 then Feind13;
- if a=5 then Feind14;
- if a=6 then Feind15;
- if a=7 then Feind16;
- if a=8 then Feind17;
- end;
- IF enemy='13-19' then begin
- a:=random(7)+1;
- if a=1 then Feind13;
- if a=2 then Feind14;
- if a=3 then Feind15;
- if a=4 then Feind16;
- if a=5 then Feind17;
- if a=6 then Feind18;
- if a=7 then Feind19;
- end;
- IF enemy='20' then Feind20;
- END;
- PROCEDURE Draw_Alien;
- BEGIN
- if aliennr=1 then begin
- textcolor(8);
- gotoxy(expx-6,expy-2);
- write('ÜÜ ÜÜ');
- gotoxy(expx-4,expy-1);
- write('ßÜ Üß');
- gotoxy(expx-2,expy);
- write('°±±±°');
- gotoxy(expx-1,expy+1);
- write('°±°');
- gotoxy(expx-2,expy+2);
- write('ß ß');
- textcolor(14);
- gotoxy(expx-1,expy-1); write('Ü Ü');
- END;
- if aliennr=2 then begin
- textcolor(6);
- gotoxy(expx-4,expy+2-3);
- write('ßßßßßßßßßßßß');
- gotoxy(expx+6,expy+1-3); write('ÜÜÜ');
- gotoxy(expx-10,expy-3);
- write('²²²²±');
- gotoxy(expx-5,expy+1-3); write('±');
- gotoxy(expx-10,expy-1-3);
- write('| |');
- textcolor(14);
- gotoxy(expx-9,expy-1-3); write('ÜÜ');
- textcolor(7);
- gotoxy(expx-3,expy+1-3); write('±°°°°°±');
- gotoxy(expx-2,expy-3); write('±°°°±');
- gotoxy(expx-1,expy-1-3); write('±±±');
- end;
- if aliennr=4 then begin
- textcolor(6);
- gotoxy(expx-3+6,expy-1-4);
- write('Ü Ü');
- gotoxy(expx+2,expy-4);
- write('³ ÜÜ ³');
- gotoxy(expx-5,expy+1-4);
- write('ÛÛ ³ ÛÛ ³');
- gotoxy(expx-7,expy+2-4);
- write('ÛÛ ÛÛÛÛÛÛÛ');
- gotoxy(expx-8,expy+3-4);
- write('ÛÛ ÜÛÛÛÛ');
- gotoxy(expx-7,expy+4-4);
- write('ÛÛÛÛÛÛÛÛÛ');
- gotoxy(expx-5,expy+5-4);
- write('ßßÛÛÛÛ');
- textcolor(blue);
- gotoxy(expx+3,expy+1-4); write('°');
- gotoxy(expx+6,expy+1-4); write('°');
- textcolor(15);
- gotoxy(expx+3,expy+3-4); write('² ²');
- textcolor(magenta);
- gotoxy(expx+4,expy+3-4); write('±');
- gotoxy(expx+5,expy+4-4); write('±');
- gotoxy(expx+5,expy+5-4); write('ß');
- END;
- if aliennr=5 then begin
- textcolor(lightgreen);
- gotoxy(expx-5,expy-3); write('± ±');
- gotoxy(expx-4,expy-2); write('±ÜÜÜÜÜÜ ±');
- gotoxy(expx-6,expy-1); write('ÜÛÛÛÛ ÛÛÛÛÜ');
- gotoxy(expx-7,expy); write('ÛÛÛÛÛ ÛÛÛÛÛ');
- gotoxy(expx-8,expy+1); write('ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ');
- gotoxy(expx-9,expy+2); write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
- gotoxy(expx-9,expy+3); write('ÛÛÛÛÛÛ ÛÛÛÛÛ');
- gotoxy(expx-8,expy+4); write('ßßßßßßßßßßßßßßßß');
- textcolor(15);
- gotoxy(expx-1,expy-1); write('Ü°Ü');
- gotoxy(expx-2,expy); write('°° °°');
- gotoxy(expx-1,expy+1); write('ß°ß');
- textcolor(lightred);
- gotoxy(expx-3,expy+3); write('³³³³³³³³');
- gotoxy(expx,expy); write('±');
- end;
- if aliennr=7 then begin
- textcolor(red);
- gotoxy(expx-6,expy+2); write('ß ß ß ß ß ß');
- gotoxy(expx-6,expy+1); write('± ± ± ± ± ±');
- gotoxy(expx-5,expy); write('ÜÛÛÛÛÛÛÛÛÛÛÜ');
- gotoxy(expx-2,expy-1); write('Û °° ÛÞ²');
- gotoxy(expx-1,expy-2); write('ÜÜÜÜ ²');
- gotoxy(expx+7,expy-3); write('²');
- gotoxy(expx+4,expy-4); write('ßßÜ');
- textcolor(white); gotoxy(expx+3,expy-4); write('Ü');
- textcolor(lightmagenta);
- gotoxy(expx-1,expy-1); write('þ');
- gotoxy(expx+2,expy-1); write('þ');
- end;
- if aliennr=8 then begin
- textcolor(8);
- gotoxy(expx-10,expy-3); write('°°°° °°°±');
- gotoxy(expx-7,expy-2); write('°°± °±±');
- gotoxy(expx-5,expy-1); write('°±± ±±±');
- gotoxy(expx-3,expy); write('°±±±±±±±');
- gotoxy(expx-2,expy+1); write('°°°°°±');
- gotoxy(expx-3,expy+2); write('° Û Û ±');
- gotoxy(expx-4,expy+3); write('° ±');
- textcolor(yellow); gotoxy(expx-1,expy-1); write('Ü Ü');
- end;
- if aliennr=9 then begin
- textcolor(6);
- gotoxy(expx+3-6,expy-5); write('Ü Ü Ü');
- gotoxy(expx-7,expy-4); write('Ü Û Û Û Û');
- gotoxy(expx-6,expy-3); write('Û Ü');
- gotoxy(expx+6,expy-2); write('Û');
- textcolor(magenta);
- gotoxy(expx-4,expy-3); write('±±²±²±²');
- gotoxy(expx-5,expy-2); write('±±² ±±±²');
- gotoxy(expx-6,expy-1); write('±²²²±±²±²±±²²');
- gotoxy(expx-7,expy); write('±±ÜßÜßÜßÜßÜßܲ±');
- gotoxy(expx-7,expy+1); write('±²²²±²±±²²²²²±±');
- gotoxy(expx-6,expy+2); write('±±±±²±±±±±±±');
- gotoxy(expx-5,expy+3); write('±²²±±²²²±²±');
- gotoxy(expx-5,expy+4); write('ßß ß ß ß ß');
- textcolor(green);
- gotoxy(expx-2,expy-2); write('Û Û');
- end;
- if aliennr=12then begin
- textcolor(lightblue);
- gotoxy(expx-3,expy+4); write('°°ß°°°ß°');
- gotoxy(expx-4,expy+3); write('°°°°°°°°°°');
- gotoxy(expx-5,expy+2); write('°°°°°°°°°°°');
- gotoxy(expx-5,expy+1); write('Ü°° °°');
- gotoxy(expx-4,expy); write('°°°°°°°°°°');
- gotoxy(expx-4,expy-1); write('Ü°° °° °°°');
- gotoxy(expx-2,expy-2); write('°°°°°°°Ü');
- gotoxy(expx-3,expy-3); write('Ü°°°°°');
- gotoxy(expx-1,expy-4); write('ÜÜ');
- textcolor(lightred); gotoxy(expx-1,expy-1); write('þ');
- gotoxy(expx+2,expy-1); write('þ');
- textcolor(yellow);
- gotoxy(expx-2,expy+1); write('³³³³³');
- end;
- if aliennr=14then begin
- textcolor(lightgray);
- gotoxy(expx-3,expy-4); write('Ü Ü');
- gotoxy(expx-3,expy-3); write('³ ³');
- gotoxy(expx-22,expy-2); write('ÜÜÜÜ°°°°Ü ³ÜÜÜÜܳ Ü°°°°ÜÜÜÜ');
- gotoxy(expx-24,expy-1); write('ܱ±±°°°°°°°°°ÜÜ ± ±±± ± ÜÜ°°°°±±±±±±±±Ü');
- gotoxy(expx-24,expy); write('ß±±±±±±°°°°°°°°°°°°Ü± ±±±±± ±Ü°°°°°°±±±±±±±±±±±±ß');
- gotoxy(expx-22,expy+1); write('ßßß±±±±°°±±±±±±±±ß±±±±±±±±±ß°°°°°±±±±±°°±°ßßß');
- gotoxy(expx-12,expy+2); write('ßßßßßß ß²²²²²ß ßßßßßßß');
- gotoxy(expx-1,expy+3); write('ß²ß');
- gotoxy(expx,expy+4); write('²');
- gotoxy(expx,expy+5); write('²');
- gotoxy(expx-1,expy+6); write('ßßß');
- end;
- if aliennr=17 then begin
- textcolor(lightgray);
- gotoxy(expx-2,expy-7); write('ÜÜÜÜÜ');
- gotoxy(expx-8,expy-6); write('ÜÜÜ°°°°°°°°±±ÜÜÜ');
- gotoxy(expx-15,expy-5); write('±±±±±±±°° °°°°°° ±Ü');
- gotoxy(expx-16,expy-4); write('±± ±±° °°±°° °±±±±±');
- gotoxy(expx-18,expy-3); write('±± ±±±±° °±°°°°°°° ±±±±±±');
- gotoxy(expx-19,expy-2); write('±± ±± ±± ±±°°°°°°±°°±°°°±±±±± ±±±±');
- gotoxy(expx-19,expy-1); write('± ±± ± ±±°°°°°°±±°±±±°±± ±± ±±±±');
- gotoxy(expx-20,expy); write('ß ß ± ±± ±± ²² ²² ²² ²² ±± ±± ±± ±');
- gotoxy(expx-16,expy+1);write('±± ±± ±± ²² ² ² ²² ±± ±± ±±ß ß');
- gotoxy(expx-17,expy+2); write('±± ± ±± ²² ²² ±± ±± ±±');
- gotoxy(expx-18,expy+3); write('ß ß ±± ±±± ² ² ±± ±± ±±');
- gotoxy(expx-15,expy+4); write('± ±± ±± ± ±');
- gotoxy(expx-16,expy+5); write('ß ß ß ß ß ß ß ßß ß');
- end;
- if aliennr=3 then begin
- textcolor(lightred);
- gotoxy(expx-6,expy-2);
- write('ÜÜ ÜÜ');
- gotoxy(expx-4,expy-1);
- write('ßÜ Üß');
- gotoxy(expx-2,expy);
- write('°±±±°');
- gotoxy(expx-1,expy+1);
- write('°±°');
- gotoxy(expx-2,expy+2);
- write('ß ß');
- textcolor(green);
- gotoxy(expx-1,expy-1); write('Ü Ü');
- END;
- if aliennr=6 then begin
- textcolor(lightgreen);
- gotoxy(expx-4,expy+2-3);
- write('ßßßßßßßßßßßß');
- gotoxy(expx+6,expy+1-3); write('ÜÜÜ');
- gotoxy(expx-10,expy-3);
- write('²²²²±');
- gotoxy(expx-5,expy+1-3); write('±');
- gotoxy(expx-10,expy-1-3);
- write('Þ Ý');
- textcolor(blue);
- gotoxy(expx-9,expy-1-3); write('ÜÜ');
- textcolor(7);
- gotoxy(expx-3,expy+1-3); write('±°°°°°±');
- gotoxy(expx-2,expy-3); write('±°°°±');
- gotoxy(expx-1,expy-1-3); write('±±±');
- end;
- if aliennr=10then begin
- textcolor(lightmagenta);
- gotoxy(expx-3+6,expy-1-4);
- write('Ü Ü');
- gotoxy(expx+2,expy-4);
- write('Þ ÜÜ Ý');
- gotoxy(expx-5,expy+1-4);
- write('ÛÛ Þ ÛÛ Ý');
- gotoxy(expx-7,expy+2-4);
- write('ÛÛ ÛÛÛÛÛÛÛ');
- gotoxy(expx-8,expy+3-4);
- write('ÛÛ ÜÛÛÛÛ');
- gotoxy(expx-7,expy+4-4);
- write('ÛÛÛÛÛÛÛÛÛ');
- gotoxy(expx-5,expy+5-4);
- write('ßßÛÛÛÛ');
- textcolor(green);
- gotoxy(expx+3,expy+1-4); write('°');
- gotoxy(expx+6,expy+1-4); write('°');
- textcolor(15);
- gotoxy(expx+3,expy+3-4); write('² ²');
- textcolor(red);
- gotoxy(expx+4,expy+3-4); write('±');
- gotoxy(expx+5,expy+4-4); write('±');
- gotoxy(expx+5,expy+5-4); write('ß');
- END;
- if aliennr=11then begin
- textcolor(lightblue);
- gotoxy(expx-5,expy-3); write('± ±');
- gotoxy(expx-4,expy-2); write('±ÜÜÜÜÜÜ ±');
- gotoxy(expx-6,expy-1); write('ÜÛÛÛÛ ÛÛÛÛÜ');
- gotoxy(expx-7,expy); write('ÛÛÛÛÛ ÛÛÛÛÛ');
- gotoxy(expx-8,expy+1); write('ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ');
- gotoxy(expx-9,expy+2); write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
- gotoxy(expx-9,expy+3); write('ÛÛÛÛÛÛ ÛÛÛÛÛ');
- gotoxy(expx-8,expy+4); write('ßßßßßßßßßßßßßßßß');
- textcolor(15);
- gotoxy(expx-1,expy-1); write('Ü°Ü');
- gotoxy(expx-2,expy); write('°° °°');
- gotoxy(expx-1,expy+1); write('ß°ß');
- textcolor(red);
- gotoxy(expx-3,expy+3); write('³³³³³³³³');
- gotoxy(expx,expy); write('±');
- end;
- if aliennr=13then begin
- textcolor(yellow);
- gotoxy(expx-6,expy+2); write('ß ß ß ß ß ß');
- gotoxy(expx-6,expy+1); write('± ± ± ± ± ±');
- gotoxy(expx-5,expy); write('ÜÛÛÛÛÛÛÛÛÛÛÜ');
- gotoxy(expx-2,expy-1); write('Û °° ÛÞ²');
- gotoxy(expx-1,expy-2); write('ÜÜÜÜ ²');
- gotoxy(expx+7,expy-3); write('²');
- gotoxy(expx+4,expy-4); write('ßßÜ');
- textcolor(red); gotoxy(expx+3,expy-4); write('Ü');
- textcolor(magenta);
- gotoxy(expx-1,expy-1); write('þ');
- gotoxy(expx+2,expy-1); write('þ');
- end;
- if aliennr=15then begin
- textcolor(lightblue);
- gotoxy(expx-10,expy-3); write('°°°° °°°±');
- gotoxy(expx-7,expy-2); write('°°± °±±');
- gotoxy(expx-5,expy-1); write('°±± ±±±');
- gotoxy(expx-3,expy); write('°±±±±±±±');
- gotoxy(expx-2,expy+1); write('°°°°°±');
- gotoxy(expx-3,expy+2); write('° Û Û ±');
- gotoxy(expx-4,expy+3); write('° ±');
- textcolor(red); gotoxy(expx-1,expy-1); write('Ü Ü');
- end;
- if aliennr=16then begin
- textcolor(6);
- gotoxy(expx+3-6,expy-5); write('Ü Ü Ü');
- gotoxy(expx-7,expy-4); write('Ü Û Û Û Û');
- gotoxy(expx-6,expy-3); write('Û Ü');
- gotoxy(expx+6,expy-2); write('Û');
- textcolor(lightmagenta);
- gotoxy(expx-4,expy-3); write('±±²±²±²');
- gotoxy(expx-5,expy-2); write('±±² ±±±²');
- gotoxy(expx-6,expy-1); write('±²²²±±²±²±±²²');
- gotoxy(expx-7,expy); write('±±ÜßÜßÜßÜßÜßܲ±');
- gotoxy(expx-7,expy+1); write('±²²²±²±±²²²²²±±');
- gotoxy(expx-6,expy+2); write('±±±±²±±±±±±±');
- gotoxy(expx-5,expy+3); write('±²²±±²²²±²±');
- gotoxy(expx-5,expy+4); write('ßß ß ß ß ß');
- textcolor(lightgreen);
- gotoxy(expx-2,expy-2); write('Û Û');
- end;
- if aliennr=18then begin
- textcolor(lightblue);
- gotoxy(expx-3,expy+4); write('°°ß°°°ß°');
- gotoxy(expx-4,expy+3); write('°°°°°°°°°°');
- gotoxy(expx-5,expy+2); write('°°°°°°°°°°°');
- gotoxy(expx-5,expy+1); write('Ü°° °°');
- gotoxy(expx-4,expy); write('°°°°°°°°°°');
- gotoxy(expx-4,expy-1); write('Ü°° °° °°°');
- gotoxy(expx-2,expy-2); write('°°°°°°°Ü');
- gotoxy(expx-3,expy-3); write('Ü°°°°°');
- gotoxy(expx-1,expy-4); write('ÜÜ');
- textcolor(yellow); gotoxy(expx-1,expy-1); write('þ');
- gotoxy(expx+2,expy-1); write('þ');
- textcolor(red);
- gotoxy(expx-2,expy+1); write('³³³³³');
- end;
- if aliennr=19then begin
- textcolor(lightmagenta);
- gotoxy(expx-3,expy-4); write('Ü Ü');
- gotoxy(expx-3,expy-3); write('³ ³');
- gotoxy(expx-22,expy-2); write('ÜÜÜÜ°°°°Ü ³ÜÜÜÜܳ Ü°°°°ÜÜÜÜ');
- gotoxy(expx-24,expy-1); write('ܱ±±°°°°°°°°°ÜÜ ± ±±± ± ÜÜ°°°°±±±±±±±±Ü');
- gotoxy(expx-24,expy); write('ß±±±±±±°°°°°°°°°°°°Ü± ±±±±± ±Ü°°°°°°±±±±±±±±±±±±ß');
- gotoxy(expx-22,expy+1); write('ßßß±±±±°°±±±±±±±±ß±±±±±±±±±ß°°°°°±±±±±°°±°ßßß');
- gotoxy(expx-12,expy+2); write('ßßßßßß ß²²²²²ß ßßßßßßß');
- gotoxy(expx-1,expy+3); write('ß²ß');
- gotoxy(expx,expy+4); write('²');
- gotoxy(expx,expy+5); write('²');
- gotoxy(expx-1,expy+6); write('ßßß');
- end;
- if aliennr=20 then begin
- textcolor(lightmagenta);
- gotoxy(expx-2,expy-7); write('ÜÜÜÜÜ');
- gotoxy(expx-8,expy-6); write('ÜÜÜ°°°°°°°°±±ÜÜÜ');
- gotoxy(expx-15,expy-5); write('±±±±±±±°° °°°°°° ±Ü');
- gotoxy(expx-16,expy-4); write('±± ±±° °°±°° °±±±±±');
- gotoxy(expx-18,expy-3); write('±± ±±±±° °±°°°°°°° ±±±±±±');
- gotoxy(expx-19,expy-2); write('±± ±± ±± ±±°°°°°°±°°±°°°±±±±± ±±±±');
- gotoxy(expx-19,expy-1); write('± ±± ± ±±°°°°°°±±°±±±°±± ±± ±±±±');
- gotoxy(expx-20,expy); write('ß ß ± ±± ±± ²² ²² ²² ²² ±± ±± ±± ±');
- gotoxy(expx-16,expy+1);write('±± ±± ±± ²² ² ² ²² ±± ±± ±±ß ß');
- gotoxy(expx-17,expy+2); write('±± ± ±± ²² ²² ±± ±± ±±');
- gotoxy(expx-18,expy+3); write('ß ß ±± ±±± ² ² ±± ±± ±±');
- gotoxy(expx-15,expy+4); write('± ±± ±± ± ±');
- gotoxy(expx-16,expy+5); write('ß ß ß ß ß ß ß ßß ß');
- end;
- END;
- PROCEDURE Draw_Cross;
- BEGIN
- textcolor(white);
- gotoxy(Posx-1,posy); write('ÄÅÄ');
- END;
- PROCEDURE Move_Cross;
- BEGIN
- gotoxy(posx-1,posy);
- write(' ');
- if (ch='1') and ((posx<>1) and (posy<>22)) then begin
- posx:=posx-1;
- posy:=posy+1;
- end;
- if (ch='2') and (posy<>22) then begin
- posx:=posx;
- posy:=posy+1;
- end;
- if (ch='3') and (posx<>79) and (posy<>22) then begin
- posx:=posx+1;
- posy:=posy+1;
- end;
- if (ch='4') and (posx<>1) then begin
- posx:=posx-1;
- posy:=posy;
- end;
- if (ch='6') and (posx<>79) then begin
- posx:=posx+1;
- posy:=posy;
- end;
- if (ch='7') and (posx<>1) and (posy<>1) then begin
- posx:=posx-1;
- posy:=posy-1;
- end;
- if (ch='8') and (posy<>1) then begin
- posx:=posx;
- posy:=posy-1;
- end;
- if (ch='9') and (posx<>79) and (posy<>1) then begin
- posx:=posx+1;
- posy:=posy-1;
- end;
- Draw_Cross;
- END;
- PROCEDURE Daneben;
- BEGIN
- gotoxy(posx,posy);
- textcolor(7);
- write('ú');
- sound(65);
- delay(50);
- nosound;
- draw_alien;
- draw_cross;
- END;
- PROCEDURE Gun;
- BEGIN
- Bullets:=Bullets-1;
- Status;
- if ((posx<>sp1x) and (posy<>sp1y)) or
- ((posx<>sp2x) and (posy<>sp2y)) or
- ((posx<>sp3x) and (posy<>sp3y)) or
- ((posx<>sp4x) and (posy<>sp4y)) or
- ((posx<>sp5x) and (posy<>sp5y)) then Daneben;
- if ((posx=sp1x) and (posy=sp1y)) or
- ((posx=sp2x) and (posy=sp2y)) or
- ((posx=sp3x) and (posy=sp3y)) or
- ((posx=sp4x) and (posy=sp4y)) or
- ((posx=sp5x) and (posy=sp5y)) then begin
- w20:=random(20)+1;
- if w20>ACC then Daneben;
- if w20<=ACC then BEGIN
- Schaden:=random(POW)+1;
- gotoxy(posx,posy); textcolor(7);
- write('ù'); sound(65); delay(50); nosound;
- gotoxy(posx,posy); textcolor(lightred);
- write('þ');
- sound(260); delay(50); nosound;
- draw_alien;
- LP:=LP-Schaden;
- draw_cross;
- end;
- END;
- END;
- PROCEDURE Faust;
- BEGIN
- if ((posx=sp1x) and (posy=sp1y)) or
- ((posx=sp2x) and (posy=sp2y)) or
- ((posx=sp3x) and (posy=sp3y)) or
- ((posx=sp4x) and (posy=sp4y)) or
- ((posx=sp5x) and (posy=sp5y)) then begin
- w20:=random(20)+1;
- if w20<=ACC then begin
- textcolor(red); gotoxy(posx,posy); write('²');
- sound(70); delay(50); nosound;
- Schaden:=random(6);
- armour:=armour-random(2);
- LP:=LP-Schaden;
- Status;
- Draw_Alien;
- Draw_Cross;
- END;
- END;
- END;
- PROCEDURE Ton;
- BEGIN
- for m:=30 to 100 do begin
- sound(m); delay(20);
- end;
- nosound;
- END;
- PROCEDURE Rakete;
- BEGIN
- Missles:=Missles-1;
- Status;
- Ton;
- Explode;
- Draw_Alien;
- Draw_Cross;
- Schaden:=random(300)+1;
- LP:=LP-Schaden;
- END;
- PROCEDURE Bomb;
- BEGIN
- Bombs:=Bombs-1;
- Status;
- Draw_Alien;
- Draw_Cross;
- for a:=100 downto 30 do begin
- sound(a);
- delay(20);
- end;
- nosound;
- textcolor(14);
- for a:=1 to 22 do begin
- gotoxy(1,a);
- for m:=1 to 80 do write('Û');
- end;
- clrscr;
- draw_alien;
- draw_cross;
- Schaden:=random(50)+1;
- Lp:=LP-Schaden;
- END;
- PROCEDURE Alien_Attacks;
- BEGIN
- w20:=random(20)+1; if w20<AF then BEGIN
- Hits:=random(TP)+1;
- sound(30); delay(65); sound(60); delay(32); nosound;
- Armour:=Armour-Hits;
- Status;
- end;
- draw_alien;
- draw_cross;
- END;
- PROCEDURE MonsterMove;
- BEGIN
- FeldX:=random(maxf)+1;
- Feldy:=random(maxf)+1;
- udx:=random(2)+1; {1 = +; 2 = -}
- udy:=random(2)+1;
- if udx=2 then udx:=-1;
- if udy=2 then udy:=-1;
- ExpX:=ExpX+(Feldx*udx);
- ExpY:=Expy+(Feldy*udy);
- if expx>55 then expx:=60;
- if expx<25 then expx:=20;
- if expy>17 then expy:=17;
- if expy<6 then expy:=6;
- if (sp1x<>10000) and (sp1y<>10000) then begin
- sp1x:=expx+vp1x;
- sp1y:=expy+vp1y;
- end;
- if (sp2x<>10000) and (sp2y<>10000) then begin
- sp2x:=expx+vp2x;
- sp2y:=expy+vp2y;
- end;
- if (sp3x<>10000) and (sp3y<>10000) then begin
- sp3x:=expx+vp3x;
- sp3y:=expy+vp3y;
- end;
- if (sp4x<>10000) and (sp4y<>10000) then begin
- sp4x:=expx+vp4x;
- sp4y:=expy+vp4y;
- end;
- if (sp5x<>10000) and (sp5y<>10000) then begin
- sp5x:=expx+vp5x;
- sp5y:=expy+vp5y;
- end;
- clrscr;
- Draw_alien;
- Draw_Cross;
- END;
- PROCEDURE Aliens_turn;
- BEGIN
- if (sp1x<>10000) and (sp1y<>10000) then begin
- sp1x:=expx+vp1x;
- sp1y:=expy+vp1y;
- end;
- if (sp2x<>10000) and (sp2y<>10000) then begin
- sp2x:=expx+vp2x;
- sp2y:=expy+vp2y;
- end;
- if (sp3x<>10000) and (sp3y<>10000) then begin
- sp3x:=expx+vp3x;
- sp3y:=expy+vp3y;
- end;
- if (sp4x<>10000) and (sp4y<>10000) then begin
- sp4x:=expx+vp4x;
- sp4y:=expy+vp4y;
- end;
- if (sp5x<>10000) and (sp5y<>10000) then begin
- sp5x:=expx+vp5x;
- sp5y:=expy+vp5y;
- end;
- m:=random(3)+1;
- if random<>1 then begin
- w20:=random(20)+1;
- if w20<=Moveit then MonsterMove else Alien_attacks;
- end;
- END;
- PROCEDURE Explode;
- BEGIN
- for m:=1 to 7 do BEGIN
- sound(20+m*10);
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- gotoxy(expX,expY); write('Û');
- delay(5);
- gotoxy(expX+m,expY); write('Û');
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- gotoxy(expX+m,expY+m); write('Û');
- delay(5);
- gotoxy(expX,expY+m); write('Û');
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- gotoxy(expX-m,expY); write('Û');
- delay(5);
- gotoxy(expX,expY-m); write('Û');
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- gotoxy(expX+m,expY-m); write('Û');
- delay(5);
- gotoxy(expX-m,expY+m); write('Û');
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- gotoxy(expX-m,expY-m); write('Û');
- delay(5);
- end;
- nosound;
- sound(30); delay(100); nosounD;
- for m:=1 to 7 do begin
- textcolor(darkgray);
- gotoxy(expX,expY); write('Û');
- delay(5);
- gotoxy(expX+m,expY); write('Û');
- gotoxy(expX+m,expY+m); write('Û');
- delay(5);
- gotoxy(expX,expY+m); write('Û');
- gotoxy(expX-m,expY); write('Û');
- delay(5);
- gotoxy(expX,expY-m); write('Û');
- gotoxy(expX+m,expY-m); write('Û');
- delay(5);
- gotoxy(expX-m,expY+m); write('Û');
- gotoxy(expX-m,expY-m); write('Û');
- delay(5);
- end;
- END;
- PROCEDURE Explode1;
- BEGIN
- for m:=1 to 7 do BEGIN
- sound(20+m*10);
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(magenta);
- gotoxy(expX,expY); write('Û');
- delay(5);
- gotoxy(expX+m,expY); write('Û');
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(magenta);
- gotoxy(expX+m,expY+m); write('Û');
- delay(5);
- gotoxy(expX,expY+m); write('Û');
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(magenta);
- gotoxy(expX-m,expY); write('Û');
- delay(5);
- gotoxy(expX,expY-m); write('Û');
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(magenta);
- gotoxy(expX+m,expY-m); write('Û');
- delay(5);
- gotoxy(expX-m,expY+m); write('Û');
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(magenta);
- gotoxy(expX-m,expY-m); write('Û');
- delay(5);
- end;
- nosound;
- sound(30); delay(100); nosounD;
- for m:=1 to 7 do begin
- textcolor(darkgray);
- gotoxy(expX,expY); write('Û');
- delay(5);
- gotoxy(expX+m,expY); write('Û');
- gotoxy(expX+m,expY+m); write('Û');
- delay(5);
- gotoxy(expX,expY+m); write('Û');
- gotoxy(expX-m,expY); write('Û');
- delay(5);
- gotoxy(expX,expY-m); write('Û');
- gotoxy(expX+m,expY-m); write('Û');
- delay(5);
- gotoxy(expX-m,expY+m); write('Û');
- gotoxy(expX-m,expY-m); write('Û');
- delay(5);
- end;
- END;
- PROCEDURE Outro; FORWARD;
- PROCEDURE Killed;
- BEGIN
- Score:=Score+sc;
- if Score>=Scorealt+(Level*100) then BEGIN
- Armour:=Armour+random(5001);
- Bullets:=Bullets+random(1001);
- Bombs:=Bombs+random(6);
- Missles:=Missles+random(3);
- POW:=POW+random(4);
- ACC:=ACC+random(3); if ACC>20 then ACC:=20;
- Scorealt:=Score;
- Level:=Level+1;
- END;
- Status;
- Explode1;
- delay(100);
- clrscr;
- delay(500);
- If aliennr=20 then Outro;
- draw_cross;
- expx:=0;
- expy:=0;
- lp:=0;
- moveit:=0;
- maxf:=0;
- feldx:=0;
- feldy:=0;
- udx:=0;
- udy:=0;
- dead:='';
- aliennr:=0;
- enemy:='';
- END;
- PROCEDURE GAMEOVER;
- BEGIN
- dead:='';
- window(1,1,80,25);
- sound(1000);
- delay(50);
- sound(40);
- delay(500);
- Blood;
- textcolor(lightred+128);
- gotoxy(33,10);
- write('* GAME OVER *');
- delay(5000);
- textcolor(lightred);
- gotoxy(33,12);
- write('* Try again *');
- delay(5000);
- halt;
- END;
- PROCEDURE Fire;
- BEGIN
- FOR posx:=1 to 30 do BEGIN
- gotoxy(37,13);
- for m:=1 to 7 do begin
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- write('Ü');
- end;
- gotoxy(44,13);
- for m:=1 to 3 do begin
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- write('Û');
- end;
- gotoxy(47,13);
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- write('Ü');
- gotoxy(34,14);
- for m:=1 to 14 do begin
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- write('Û');
- end;
- gotoxy(37,15);
- for m:=1 to 7 do begin
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- write('ß');
- end;
- gotoxy(44,15);
- for m:=1 to 3 do begin
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- write('Û');
- end;
- gotoxy(47,15);
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- write('ß');
- FOR posy:=1 to 10 do begin
- x:=random(8)+1;
- if x=1 then x:=45;
- if x=2 then x:=43;
- if x=3 then x:=40;
- if x=4 then x:=37;
- if x=5 then x:=35;
- if x=6 then x:=32;
- if x=7 then x:=30;
- if x=8 then x:=28;
- y:=random(5)+1;
- if y=1 then y:=14;
- if y=2 then y:=15;
- if y=3 then y:=13;
- if y=4 then y:=16;
- if y=5 then y:=12;
- a:=random(3)+1;
- if a=1 then textcolor(red);
- if a=2 then textcolor(lightred);
- if a=3 then textcolor(yellow);
- vp1x:=random(3)+1;
- if vp1x=1 then begin
- gotoxy(x,y); write('Ü');
- sound(60);
- delay(8);
- nosound;
- gotoxy(x,y); write(' ');
- end;
- if vp1x=2 then begin
- gotoxy(x,y); write('ß');
- sound(65);
- delay(8);
- nosound;
- gotoxy(x,y); write(' ');
- end;
- if vp1x=3 then begin
- gotoxy(x,y); write('Û');
- sound(70);
- delay(8);
- nosound;
- gotoxy(x,y); write(' ');
- end;
- END;
- delay(10);
- END;
- gotoxy(01,12); write(' ');
- gotoxy(01,13); write(' ');
- gotoxy(01,14); write(' ');
- gotoxy(01,15); write(' ');
- gotoxy(01,16); write(' ');
- END;
- PROCEDURE OUTRO;
- BEGIN
- delay(1000);
- textbackground(0);
- window(1,1,80,25);
- clrscr;
- delay(1000);
- textcolor(lightred+128);
- gotoxy(30,1); write('--CONGRATIULATIONS--');
- textcolor(red);
- gotoxy(13,3); write('You are the one who stroke the demon-invasion once more!');
- delay(2500);
- textcolor(7);
- gotoxy(60,7); write('ÜÜÛÛÜÜ');
- gotoxy(59,8); write('Û Û');
- gotoxy(59,9); write('ÛÛÛÜÜÛÛÛ');
- gotoxy(60,10); write('ß ß');
- gotoxy(48,13); write('ÜÜ Ü_Ü');
- gotoxy(48,14); write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
- gotoxy(48,15); write('ßß ÛÛ');
- gotoxy(56,16); write('ÛÛ');
- gotoxy(57,17); write('ÛÛ');
- textcolor(lightblue); gotoxy(61,8); write('þ þ');
- textcolor(brown);
- gotoxy(61,13); write('ÜÜÜ');
- gotoxy(62,15); write('ÛÛ');
- gotoxy(57,21); write('±±± ±±±');
- gotoxy(57,22); write('±±± ±±±');
- gotoxy(57,23); write('±±± ±±±');
- gotoxy(54,24); write('±±±±±± ±±±±±±');
- textcolor(white);
- gotoxy(55,16); write('ß');
- gotoxy(62,14); write('Û');
- textcolor(magenta);
- gotoxy(1,25); for m:=1 to 79 do write('Û');
- gotoxy(61,10); write('ÛÛÛÛ');
- gotoxy(55,11); write('ÜÜÜÛÛÛÛÛÛÛÛÛÛÜÜÜ');
- gotoxy(55,12); write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
- gotoxy(54,13); write('Û');
- gotoxy(58,13); write('ÛÛÛ');
- gotoxy(64,13); write('ÛÛÛÛÛÛ');
- gotoxy(63,14); write('ÛÛÛÛÛÛ');
- gotoxy(54,15); write('ÛÛ');
- gotoxy(58,15); write('ÛÛÛÛ');
- gotoxy(64,15); write('ÛÛÛÛ');
- textcolor(lightblue);
- gotoxy(58,16); write('°°°°°°°°°°');
- gotoxy(59,17); write('°°°°°°°°°');
- gotoxy(58,18); write('°°° °°°');
- gotoxy(57,19); write('°°° °°°');
- gotoxy(57,20); write('°°° °°°');
- delay(5000);
- Fire;
- delay(100);
- textcolor(white);
- gotoxy(29,14);
- write('IDea by B. M”ller');
- delay(5000);
- gotoxy(29,14);
- write(' ');
- Fire;
- delay(100);
- textcolor(white);
- gotoxy(26,14);
- write('Graph-X by B. M”ller');
- delay(5000);
- gotoxy(26,14);
- write(' ');
- Fire;
- delay(100);
- textcolor(white);
- gotoxy(29,14);
- write('Sounds by DJ B™MM');
- delay(5000);
- gotoxy(29,14);
- write(' ');
- Fire;
- delay(100);
- textcolor(white);
- gotoxy(24,14);
- write('Programed by B. M”ller');
- delay(5000);
- gotoxy(24,14);
- write(' ');
- Fire;
- delay(2000);
- textcolor(white);
- gotoxy(30,10);
- write('Special Thanks to');
- delay(1000);
- gotoxy(30,12); write('id SOFTWARE');
- delay(5000);
- gotoxy(30,10);
- write(' ');
- gotoxy(30,12); write(' ');
- delay(1000);
- Fire;
- delay(100);
- textcolor(white);
- gotoxy(18,14);
- write('Presented by B™MMSOFT (1995)');
- delay(5000);
- gotoxy(18,14);
- write(' ');
- Fire;
- delay(2000);
- textcolor(13);
- gotoxy(1,7);
- write('ÜÜÜÜÜ Ü Ü ÜÜÜÜ ÜÜÜÜ Ü Ü ÜÜÜ');
- gotoxy(1,8);
- write(' Û Û Û Û Û Û Û Û Û');
- gotoxy(1,9);
- write(' Û Û Û Û Û ÛÛ Û Û Û');
- gotoxy(1,10);
- write(' Û ÛÛÛÛÛ ÛÛÛ ÛÛÛ Û Û Û Û Û');
- gotoxy(1,11);
- write(' Û Û Û Û Û Û Û Û Û Û');
- gotoxy(1,12);
- write(' Û Û Û Û Û Û ÛÛ Û Û');
- gotoxy(1,13);
- write(' ß ß ß ßßßß ßßßß ß ß ßßß');
- delay(2500);
- gotoxy(3,16);
- textcolor(14);
- write('Maybe the aliens will strike back again...');
- delay(10000);
- clrscr;
- textbackground(red);
- textcolor(0);
- gotoxy(9,11);
- write('You must wait for "XXXXX " until id SOFTWARE publishes QUAKE!');
- delay(1000);
- textcolor(0);
- gotoxy(28,15);
- write('Until then, play XXXX2!');
- delay(5000);
- halt;
- END;
- PROCEDURE Alien_Dead;
- BEGIN
- if lp<=0 then dead:='alien';
- END;
- PROCEDURE Hero_Dead;
- BEGIN
- if armour<0 then dead:='hero';
- END;
- PROCEDURE Start_Game;
- BEGIN
- repeat
- Enemychoose;
- repeat
- repeat
- Draw_Alien;
- Draw_Cross;
- Aliens_turn;
- ch:=readkey;
- until ch in ['1','2','3','4','6','7','8','9','x','y','c','v','!','?'];
- if (ch='x') and (bombs<>0) then bomb;
- if (ch='y') and (bullets<>0) then gun;
- if (ch='c') and (missles<>0) then Rakete;
- if ch='v' then Faust;
- if ch='!' then begin
- armour:=armour+100;
- bullets:=bullets+100;
- bombs:=bombs+10;
- missles:=missles+5;
- acc:=acc+1; if acc>20 then acc:=20;
- pow:=pow+1;
- Status;
- end;
- if ch='?' then begin
- score:=scorealt+(level*100);
- scorealt:=score;
- level:=level+1;
- Status;
- end;
- if (ch='1') OR (ch='2') OR (ch='3') OR (ch='4') OR (ch='6')
- OR (ch='7') OR (ch='8') OR (ch='9') then Move_Cross;
- Alien_Dead;
- Hero_Dead;
- until (Dead='hero') or (Dead='alien');
- If Dead='hero' then GAMEOVER;
- If Dead='alien' then Killed;
- until 1=0;
- END;
- PROCEDURE Spiel;
- BEGIN
- randomize;
- textbackground(0);
- window(1,1,80,25);
- clrscr;
- delay(1000);
- Intro;
- Init_Hero;
- Status;
- Init_Crosswire;
- Start_Game;
- END;
- BEGIN
- Spiel;
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement