Advertisement
bkimminich

XXXX 2 - The ultimative DOOM 2-Clone

Jan 27th, 2019
1,448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 43.50 KB | None | 0 0
  1. PROGRAM XXXX;
  2.  
  3. {********************************************
  4.  * X X X X 2 - The ultimative DOOM 2-Clone  *
  5.  *                                          *
  6.  * Author: B.M”ller                         *
  7.  * Publisher: B™MMSOFT  (Germany)           *
  8.  *                                          *
  9.  * Date of begin: 14.04.95                  *
  10.  * Date of end  : __.__.__                  *
  11.  ********************************************}
  12.  
  13. USES Crt;
  14. VAR dead,enemy:STRING[10];
  15.     x,y,m,a,w20,expX,expY,Moveit,maxF,udx,udy,feldx,feldy:INTEGER;
  16.     armour,bullets,bombs,missles,pow,acc,lp,af,tp,sc,aliennr:LONGINT;
  17.     score,scorealt,level:LONGINT;
  18.     posx,posy,Hits,schaden,SP1x,sp2x,sp3x,sp4x,sp5x,sp1y,sp2y,sp3y,sp4y,sp5y:INTEGER;
  19.     Ch:CHAR;
  20.     vP1x,vp2x,vp3x,vp4x,vp5x,vp1y,vp2y,vp3y,vp4y,vp5y:INTEGER;
  21.  
  22.  {$I B”mmsoft.log}
  23. PROCEDURE Explode; FORWARD;
  24. PROCEDURE Blood;
  25. BEGIN
  26. textcolor(red);
  27. for y:=1 to 22 do begin
  28.    gotoxy(1,y);
  29.    for a:=1 to 80 do write('Û');
  30.  
  31.    gotoxy(1,y+1);
  32.    for a:=1 to 80 do begin
  33.    m:=random(2)+1;
  34.    if m=1 then write('Û');
  35.    if m=2 then write(' ');
  36.    end;
  37.  
  38.    gotoxy(1,y+2);
  39.    for a:=1 to 80 do begin
  40.    m:=random(2)+1;
  41.    if m=1 then write('³');
  42.    if m=2 then write(' ');
  43.    end;
  44.  
  45.    gotoxy(1,y+3);
  46.    for a:=1 to 80 do begin
  47.    m:=random(2)+1;
  48.    if m=1 then write('ß');
  49.    if m=2 then write(' ');
  50.    end;
  51.  
  52. delay(127);
  53. if y=10 then nosound;
  54. end;
  55.  
  56. gotoxy(1,22);
  57. for a:=1 to 80 do write('Û');
  58. delay(127);
  59. gotoxy(1,23);
  60. for a:=1 to 80 do write('Û');
  61. delay(127);
  62. gotoxy(1,24);
  63. for a:=1 to 80 do write('Û');
  64. delay(1000);
  65. END;
  66.  
  67. PROCEDURE Intro;
  68. BEGIN
  69. clrscr;
  70. Boemmsoft_Logo;
  71. gotoxy(36,18);
  72. textcolor(white);
  73. write('presents');
  74. delay(2000);
  75. clrscr;
  76. delay(1000);
  77. textcolor(red);
  78. write('                            ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±                      ');
  79. write('                           ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±                     ');
  80. write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°');
  81. write('Û°                          ²²²²±                   ²²²²²²±                   Û°');
  82. write('Û°ÛÛÛ°           ÛÛÛ°ÛÛÛ°           ÛÛÛ°ÛÛÛ°       ²²²±ÛÛÛ°ÛÛÛ°           ÛÛÛ°Û°');
  83. write('Û° ÛÛÛ°         ÛÛÛ°  ÛÛÛ°         ÛÛÛ°  ÛÛÛ°    ²²²²±ÛÛÛ°  ÛÛÛ°         ÛÛÛ° Û°');
  84. write('Û°  ÛÛÛ°       ÛÛÛ°    ÛÛÛ°       ÛÛÛ°    ÛÛÛ°  ²²²²±ÛÛÛ°    ÛÛÛ°       ÛÛÛ°  Û°');
  85. write('Û°   ÛÛÛ°     ÛÛÛ°      ÛÛÛ°     ÛÛÛ°      ÛÛÛ°²²²²±ÛÛÛ°      ÛÛÛ°     ÛÛÛ°   Û°');
  86. write('Û°    ÛÛÛ°   ÛÛÛ°        ÛÛÛ°   ÛÛÛ°        ÛÛÛ°²²±ÛÛÛ°        ÛÛÛ°   ÛÛÛ°    Û°');
  87. write('Û°     ÛÛÛ° ÛÛÛ°          ÛÛÛ° ÛÛÛ°        ²²ÛÛÛ°±ÛÛÛ°          ÛÛÛ° ÛÛÛ°     Û°');
  88. write('Û°       ÛÛÛÛ°              ÛÛÛÛ°         ²²²²±ÛÛÛÛ°              ÛÛÛÛ°       Û°');
  89. write('Û°     ÛÛÛ° ÛÛÛ°          ÛÛÛ° ÛÛÛ°      ²²²±ÛÛÛ° ÛÛÛ°          ÛÛÛ° ÛÛÛ°     Û°');
  90. write('Û°    ÛÛÛ°   ÛÛÛ°        ÛÛÛ°   ÛÛÛ°    ²²²±ÛÛÛ°   ÛÛÛ°        ÛÛÛ°   ÛÛÛ°    Û°');
  91. write('Û°   ÛÛÛ°     ÛÛÛ°      ÛÛÛ°     ÛÛÛ° ²²²²±ÛÛÛ°     ÛÛÛ°      ÛÛÛ°     ÛÛÛ°   Û°');
  92. write('Û°  ÛÛÛ°       ÛÛÛ°    ÛÛÛ°       ÛÛÛ°²²²±ÛÛÛ°       ÛÛÛ°    ÛÛÛ°       ÛÛÛ°  Û°');
  93. write('Û° ÛÛÛ°         ÛÛÛ°  ÛÛÛ°        ²ÛÛÛ°²±ÛÛÛ°         ÛÛÛ°  ÛÛÛ°         ÛÛÛ° Û°');
  94. write('Û°ÛÛÛ°           ÛÛÛ°ÛÛÛ°        ²²²ÛÛÛ°ÛÛÛ°           ÛÛÛ°ÛÛÛ°           ÛÛÛ°Û°');
  95. write('Û°                             ²²²²²²²²²±                                     Û°');
  96. write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°');
  97. write('                             ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±                     ');
  98. write('                            ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±                      ');
  99. writeln;
  100. writeln('                  Û Û Ûß Û  Û   ÛßÛ Û  Û  Ûß ÛßÛ ÛßÛ ßÛß Û Û');
  101. writeln('                   Û  ÛÛ Û  Û   Û Û ÛÛ Û  ÛÛ ÛßÛ ÛßÛ  Û  ÛÛÛ');
  102. write('                  Û Û ÛÜ ÛÜ ÛÜ  ÛÜÛ Û ßÛ  ÛÜ Û Û Û  Û Û  Û Û');
  103. gotoxy(39,20);
  104. write('VERSION 1.2');
  105. readln;
  106. Blood;
  107. clrscr;
  108. delay(1000);
  109. textcolor(7);
  110. writeln;
  111. writeln('To get known the controlling of "XXXX 2" type `HELP` in your Game-directory!');
  112. writeln;
  113. writeln('             I hope you enjoy blasting the demons back to hell...');
  114. writeln;
  115. writeln('                 If there`s any problem with this game call:');
  116. writeln;
  117. textcolor(red);
  118. writeln('                            Germany, 04122-######');
  119. textcolor(8);
  120. writeln;
  121. writeln('            Why are you waiting? Press <RETURN> to start demon-kicking...');
  122. readln;
  123. Blood;
  124. clrscr;
  125. delay(1000);
  126. END;
  127.  
  128.  
  129. PROCEDURE Init_Hero;
  130. BEGIN
  131. Scorealt:=0;
  132. Score:=0;
  133. Level:=1;
  134. Armour:=5000;
  135. Bullets:=1000;
  136. Bombs:=10;
  137. Missles:=3;
  138. POW:=8;
  139. ACC:=10;
  140. END;
  141.  
  142. PROCEDURE Status;
  143. BEGIN
  144. textcolor(0);
  145. textbackground(7);
  146. window(1,23,80,25);
  147. clrscr;
  148.  
  149. window(1,24,16,24);
  150. write('SCORE: ',score);
  151.  
  152. window(1,25,16,25);
  153. write('LEVEL: ',level);
  154.  
  155. window(18,24,32,24);
  156. write('ARMOUR: ',armour);
  157.  
  158. window(18,25,32,25);
  159. write('ACCURANCE: ',acc);
  160.  
  161. window(34,24,48,24);
  162. write('GUNPOWER: ',pow);
  163.  
  164. window(34,25,48,25);
  165. write('BULLETS: ',bullets);
  166.  
  167. window(50,24,67,24);
  168. write('BOMBS: ',bombs);
  169.  
  170. window(50,25,67,25);
  171. write('H-MISSLES: ',missles);
  172.  
  173. window(69,23,80,25);
  174. gotoxy(2,1); write('XXXX 2');
  175. gotoxy(2,2); write('¸ 1995');
  176. gotoxy(1,3); write('B™MMSOFT');
  177.  
  178. textbackground(0);
  179. textcolor(0);
  180. window(1,1,80,22);
  181. END;
  182.  
  183. PROCEDURE Init_Crosswire;
  184. BEGIN
  185. textcolor(white);
  186. Posx:=40;
  187. Posy:=11;
  188. gotoxy(Posx-1,Posy);
  189. write('ÄÅÄ');
  190. END;
  191.  
  192. PROCEDURE Feind1;
  193.    begin
  194. expx:=37;
  195. expy:=11;
  196. Moveit:=10;
  197. Maxf:=2;
  198. lp:=10; af:=5; tp:=6; sc:=7;
  199.    aliennr:=1;
  200.    vp1x:=-1;
  201.    vp1y:=0;
  202.  
  203.    vp2x:=0;
  204.    vp2y:=0;
  205.  
  206.    vp3x:=1;
  207.    vp3y:=0;
  208.  
  209.    vp4x:=0;
  210.    vp4y:=1;
  211.    vp5x:=10000;
  212. vp5y:=10000;
  213.  
  214.    end;
  215.  
  216. PROCEDURE Feind2;
  217.    begin
  218. expx:=38;
  219. expy:=17;
  220. Moveit:=6;
  221. MaxF:=1;
  222. lp:=20; af:=7; tp:=5; sc:=11;
  223.    aliennr:=2;
  224.  
  225.    vp1x:=-9;
  226.    vp1y:=-3;
  227.  
  228.    vp2x:=-8;
  229.    vp2y:=-3;
  230.  
  231.    vp3x:=-7;
  232.    vp3y:=-3;
  233.  
  234.    vp4x:=-6;
  235.    vp4y:=-3;
  236.  
  237.    vp5x:=-5;
  238.    vp5y:=1-3;
  239.    end;
  240.  
  241. PROCEDURE Feind4;
  242.    begin
  243. expx:=28;
  244. expy:=17;
  245. Moveit:=4;
  246. MaxF:=1;
  247. lp:=40; af:=9; tp:=12; sc:=20;
  248.    aliennr:=4;
  249. vp1x:=4;
  250. vp1y:=3-4;
  251. vp2x:=5;
  252. vp2y:=4-4;
  253. vp3x:=5;
  254. vp3y:=5-4;
  255. vp4x:=10000;
  256. vp4y:=10000;
  257. vp5x:=10000;
  258. vp5y:=10000;
  259.  
  260. end;
  261.  
  262. PROCEDURE Feind5;
  263.    begin
  264. expx:=39;
  265. expy:=13;
  266. Moveit:=1;
  267. MaxF:=1;
  268. lp:=50; af:=10; tp:=20; sc:=26;
  269.    aliennr:=5;
  270.     vp1x:=0;
  271.    vp1y:=-1;
  272.  
  273.    vp2x:=-1;
  274.    vp2y:=0;
  275.  
  276.    vp3x:=0;
  277.    vp3y:=0;
  278.  
  279.    vp4x:=1;
  280.    vp4y:=0;
  281.  
  282.    vp5x:=0;
  283.    vp5y:=1;
  284.  
  285.    end;
  286.  
  287. PROCEDURE Feind7;
  288.    begin
  289. EXPX:=52;
  290. EXPY:=11;
  291. Moveit:=15;
  292. MaxF:=4;
  293. lp:=5;  af:=5; tp:=100; sc:=36;
  294.    aliennr:=7;
  295.      vp1x:=3;
  296.    vp1y:=-4;
  297.  
  298.    vp2x:=1;
  299.    vp2y:=-1;
  300.  
  301.    vp3x:=0;
  302.    vp3y:=-1;
  303.  
  304.    vp4x:=-1;
  305.    vp4y:=-1;
  306.  
  307.    vp5x:=2;
  308.    vp5y:=-1;
  309.  
  310.    end;
  311.  
  312. PROCEDURE Feind8;
  313.    begin
  314. expx:=37; expy:=11;
  315. Moveit:=8;
  316. MaxF:=2;
  317. lp:=75; af:=12; tp:=25; sc:=37;
  318.    aliennr:=8;
  319.    vp1x:=0;
  320.    vp1y:=2;
  321.    vp2x:=1;
  322.    vp2y:=2;
  323. vp3x:=10000;
  324. vp3y:=10000;
  325. vp4x:=10000;
  326. vp4y:=10000;
  327. vp5x:=10000;
  328. vp5y:=10000;
  329.  
  330.    end;
  331.  
  332.  
  333. PROCEDURE Feind9;
  334.    begin
  335. expx:=13;
  336. expy:=8;
  337. Moveit:=3;
  338. MaxF:=1;
  339. lp:=100; af:=11; tp:=30; sc:=47;
  340.    aliennr:=9;
  341.    vp1x:=-2;
  342. vp1y:=-2;
  343. vp2x:=-1;
  344. vp2y:=-2;
  345. vp3x:=0;
  346. vp3y:=-2;
  347. vp4x:=10000;
  348. vp4y:=10000;
  349. vp5x:=10000;
  350. vp5y:=10000;
  351.  
  352.    end;
  353.  
  354. PROCEDURE Feind12;
  355.    begin
  356. expx:=15;
  357. expy:=5;
  358. Moveit:=16;
  359. MaxF:=10;
  360. lp:=200; af:=18; tp:=5; sc:=74;
  361.    aliennr:=12;
  362.    vp1x:=-2;
  363. vp1y:=1;
  364. vp2x:=-1;
  365. vp2y:=1;
  366. vp3x:=0;
  367. vp3y:=1;
  368. vp4x:=1;
  369. vp4y:=1;
  370. vp5x:=2;
  371. vp5y:=1;
  372. end;
  373.  
  374. PROCEDURE Feind14;
  375.    begin
  376. expx:=40;
  377. expy:=11;
  378. Moveit:=4;
  379. MaxF:=1;
  380. lp:=200; af:=13; tp:=40; sc:=84;
  381.    aliennr:=14;
  382.    vp1x:=-5;
  383. vp1y:=0;
  384. vp2x:=-5;
  385. vp2y:=1;
  386. vp3x:=5;
  387. vp3y:=0;
  388. vp4x:=5;
  389. vp4y:=1;
  390. vp5x:=0;
  391. vp5y:=3;
  392.  
  393.    end;
  394.  
  395. PROCEDURE Feind17;
  396.    begin
  397. expx:=40;
  398. expy:=17;
  399. Moveit:=1;
  400. MaxF:=1;
  401. lp:=500; af:=15; tp:=100; sc:=205;
  402.    aliennr:=17;
  403.    vp1x:=0;
  404. vp1y:=0;
  405. vp2x:=10000;
  406. vp2y:=10000;
  407. vp3x:=10000;
  408. vp3y:=10000;
  409. vp4x:=10000;
  410. vp4y:=10000;
  411. vp5x:=10000;
  412. vp5y:=10000;
  413.  
  414.    end;
  415.  
  416.    PROCEDURE Feind3;
  417.    begin
  418. expx:=37;
  419. expy:=11;
  420. Moveit:=10;
  421. Maxf:=2;
  422. lp:=30; af:=10; tp:=12; sc:=17;
  423.    aliennr:=3;
  424.    vp1x:=-1;
  425.    vp1y:=0;
  426.  
  427.    vp2x:=0;
  428.    vp2y:=0;
  429.  
  430.    vp3x:=1;
  431.    vp3y:=0;
  432.  
  433.    vp4x:=0;
  434.    vp4y:=1;
  435.    vp5x:=10000;
  436. vp5y:=10000;
  437.  
  438.    end;
  439.  
  440. PROCEDURE Feind6;
  441.    begin
  442. expx:=38;
  443. expy:=17;
  444. Moveit:=6;
  445. MaxF:=1;
  446. lp:=60; af:=14; tp:=10; sc:=28;
  447.    aliennr:=6;
  448.  
  449.    vp1x:=-9;
  450.    vp1y:=-3;
  451.  
  452.    vp2x:=-8;
  453.    vp2y:=-3;
  454.  
  455.    vp3x:=-7;
  456.    vp3y:=-3;
  457.  
  458.    vp4x:=-6;
  459.    vp4y:=-3;
  460.  
  461.    vp5x:=-5;
  462.    vp5y:=1-3;
  463.    end;
  464.  
  465. PROCEDURE Feind10;
  466.    begin
  467. expx:=28;
  468. expy:=17;
  469. Moveit:=4;
  470. MaxF:=1;
  471. lp:=120; af:=18; tp:=24; sc:=54;
  472.    aliennr:=10;
  473. vp1x:=4;
  474. vp1y:=3-4;
  475. vp2x:=5;
  476. vp2y:=4-4;
  477. vp3x:=5;
  478. vp3y:=5-4;
  479. vp4x:=10000;
  480. vp4y:=10000;
  481. vp5x:=10000;
  482. vp5y:=10000;
  483.  
  484. end;
  485.  
  486. PROCEDURE Feind11;
  487.    begin
  488. expx:=39;
  489. expy:=13;
  490. Moveit:=1;
  491. MaxF:=1;
  492. lp:=150; af:=20; tp:=40; sc:=70;
  493.    aliennr:=11;
  494.     vp1x:=0;
  495.    vp1y:=-1;
  496.  
  497.    vp2x:=-1;
  498.    vp2y:=0;
  499.  
  500.    vp3x:=0;
  501.    vp3y:=0;
  502.  
  503.    vp4x:=1;
  504.    vp4y:=0;
  505.  
  506.    vp5x:=0;
  507.    vp5y:=1;
  508.  
  509.    end;
  510.  
  511. PROCEDURE Feind13;
  512.    begin
  513. EXPX:=52;
  514. EXPY:=11;
  515. Moveit:=15;
  516. MaxF:=4;
  517. lp:=15;  af:=10; tp:=200; sc:=75;
  518.    aliennr:=13;
  519.      vp1x:=3;
  520.    vp1y:=-4;
  521.  
  522.    vp2x:=1;
  523.    vp2y:=-1;
  524.  
  525.    vp3x:=0;
  526.    vp3y:=-1;
  527.  
  528.    vp4x:=-1;
  529.    vp4y:=-1;
  530.  
  531.    vp5x:=2;
  532.    vp5y:=-1;
  533.  
  534.    end;
  535.  
  536. PROCEDURE Feind15;
  537.    begin
  538. expx:=37; expy:=11;
  539. Moveit:=8;
  540. MaxF:=2;
  541. lp:=225; af:=20; tp:=50; sc:=98;
  542.    aliennr:=15;
  543.    vp1x:=0;
  544.    vp1y:=2;
  545.    vp2x:=1;
  546.    vp2y:=2;
  547. vp3x:=10000;
  548. vp3y:=10000;
  549. vp4x:=10000;
  550. vp4y:=10000;
  551. vp5x:=10000;
  552. vp5y:=10000;
  553.  
  554.    end;
  555.  
  556.  
  557. PROCEDURE Feind16;
  558.    begin
  559. expx:=13;
  560. expy:=8;
  561. Moveit:=3;
  562. MaxF:=1;
  563. lp:=300; af:=20; tp:=60; sc:=127;
  564.    aliennr:=16;
  565.    vp1x:=-2;
  566. vp1y:=-2;
  567. vp2x:=-1;
  568. vp2y:=-2;
  569. vp3x:=0;
  570. vp3y:=-2;
  571. vp4x:=10000;
  572. vp4y:=10000;
  573. vp5x:=10000;
  574. vp5y:=10000;
  575.  
  576.    end;
  577.  
  578. PROCEDURE Feind18;
  579.    begin
  580. expx:=15;
  581. expy:=5;
  582. Moveit:=16;
  583. MaxF:=10;
  584. lp:=600; af:=20; tp:=15; sc:=210;
  585.    aliennr:=18;
  586.    vp1x:=-2;
  587. vp1y:=1;
  588. vp2x:=-1;
  589. vp2y:=1;
  590. vp3x:=0;
  591. vp3y:=1;
  592. vp4x:=1;
  593. vp4y:=1;
  594. vp5x:=2;
  595. vp5y:=1;
  596. end;
  597.  
  598. PROCEDURE Feind19;
  599.    begin
  600. expx:=40;
  601. expy:=11;
  602. Moveit:=4;
  603. MaxF:=1;
  604. lp:=600; af:=20; tp:=80; sc:=233;
  605.    aliennr:=19;
  606.    vp1x:=-5;
  607. vp1y:=0;
  608. vp2x:=-5;
  609. vp2y:=1;
  610. vp3x:=5;
  611. vp3y:=0;
  612. vp4x:=5;
  613. vp4y:=1;
  614. vp5x:=0;
  615. vp5y:=3;
  616.  
  617.    end;
  618.  
  619. PROCEDURE Feind20;
  620.    begin
  621. expx:=40;
  622. expy:=17;
  623. Moveit:=1;
  624. MaxF:=1;
  625. lp:=1500; af:=20; tp:=200; sc:=573;
  626.    aliennr:=20;
  627.    vp1x:=0;
  628. vp1y:=0;
  629. vp2x:=10000;
  630. vp2y:=10000;
  631. vp3x:=10000;
  632. vp3y:=10000;
  633. vp4x:=10000;
  634. vp4y:=10000;
  635. vp5x:=10000;
  636. vp5y:=10000;
  637.  
  638.    end;
  639.  
  640. PROCEDURE Enemychoose;
  641. BEGIN
  642. sp1x:=0;
  643. sp1y:=0;
  644. sp2x:=0;
  645. sp2y:=0;
  646. sp3x:=0;
  647. sp3y:=0;
  648. sp4x:=0;
  649. sp4y:=0;
  650. sp5x:=0;
  651. sp5y:=0;
  652.  
  653. w20:=random(20)+1;
  654. IF Level>=20 then enemy:='13-19';
  655. IF Level<19 then enemy:='10-17';
  656. IF Level<17 then enemy:='8-17';
  657. IF Level<13 then enemy:='5-17';
  658. IF Level<11 then enemy:='5-14';
  659. IF Level<8  then enemy:='4-11';
  660. IF Level<6  then enemy:='3-8';
  661. IF Level<4  then enemy:='2-5';
  662. IF Level<3  then enemy:='1-4';
  663. IF (Level>18) and (w20>16) then enemy:='20';
  664.  
  665.  
  666.  
  667. IF enemy='1-4' then begin
  668. a:=random(4)+1;
  669. if a=1 then Feind1;
  670. if a=2 then Feind2;
  671. if a=3 then Feind3;
  672. if a=4 then Feind4;
  673. end;
  674.  
  675.  
  676. IF enemy='2-5' then begin
  677.    a:=random(4)+1;
  678.    if a=1 then Feind2;
  679.    if a=2 then Feind3;
  680.    if a=3 then Feind4;
  681. if a=4 then Feind5;
  682.  
  683. end;
  684.  
  685. IF enemy='3-8' then begin
  686.    a:=random(6)+1;
  687.    if a=1 then Feind3;
  688.    if a=2 then Feind4;
  689.    if a=3 then Feind5;
  690.    if a=4 then Feind6;
  691.    if a=5 then Feind7;
  692.   if a=6 then Feind8;
  693. end;
  694.  
  695. IF enemy='4-11' then begin
  696.    a:=random(8)+1;
  697.    if a=1 then Feind4;
  698.    if a=2 then Feind5;
  699.    if a=3 then Feind6;
  700.    if a=4 then Feind7;
  701.    if a=5 then Feind8;
  702.    if a=6 then Feind9;
  703.    if a=7 then Feind10;
  704.    if a=8 then Feind1;
  705.  
  706. end;
  707.  
  708. IF enemy='5-14' then begin
  709.    a:=random(10)+1;
  710.    if a=1 then Feind5;
  711.    if a=2 then Feind6;
  712.    if a=3 then Feind7;
  713. if a=4 then Feind8;
  714.    if a=5 then Feind9;
  715.    if a=6 then Feind10;
  716.    if a=7 then Feind11;
  717.    if a=8 then Feind12;
  718.   if a=9 then Feind13;
  719.    if a=10 then Feind14;
  720.  
  721. end;
  722.  
  723. IF enemy='5-17' then begin
  724.    a:=random(13)+1;
  725.    if a=1 then Feind5;
  726.    if a=2 then Feind6;
  727.    if a=3 then Feind7;
  728. if a=4 then Feind8;
  729.    if a=5 then Feind9;
  730.    if a=6 then Feind10;
  731.    if a=7 then Feind11;
  732.    if a=8 then Feind12;
  733.  if a=9 then Feind13;
  734.    if a=10then Feind14;
  735.    if a=11then Feind15;
  736.    if a=12then Feind16;
  737.  if a=13then Feind17;
  738.  
  739. end;
  740.  
  741. IF enemy='8-17' then begin
  742.    a:=random(10)+1;
  743.    if a=1 then Feind8;
  744.    if a=2 then Feind9;
  745.    if a=3 then Feind10;
  746. if a=4 then Feind11;
  747.    if a=5 then Feind12;
  748.    if a=6 then Feind13;
  749.    if a=7 then Feind14;
  750.    if a=8 then Feind15;
  751.   if a=9 then Feind16;
  752.    if a=10 then Feind17;
  753.  end;
  754.    IF enemy='10-17' then begin
  755.    a:=random(8)+1;
  756.    if a=1 then Feind10;
  757.    if a=2 then Feind11;
  758.    if a=3 then Feind12;
  759.    if a=4 then Feind13;
  760.    if a=5 then Feind14;
  761.    if a=6 then Feind15;
  762.    if a=7 then Feind16;
  763.    if a=8 then Feind17;
  764.  
  765. end;
  766.  IF enemy='13-19' then begin
  767.    a:=random(7)+1;
  768.    if a=1 then Feind13;
  769.    if a=2 then Feind14;
  770.    if a=3 then Feind15;
  771.    if a=4 then Feind16;
  772.    if a=5 then Feind17;
  773.    if a=6 then Feind18;
  774.    if a=7 then Feind19;
  775.  
  776. end;
  777.  
  778.  
  779.  
  780. IF enemy='20' then Feind20;
  781.  
  782. END;
  783.  
  784. PROCEDURE Draw_Alien;
  785. BEGIN
  786. if aliennr=1 then begin
  787. textcolor(8);
  788. gotoxy(expx-6,expy-2);
  789. write('ÜÜ         ÜÜ');
  790. gotoxy(expx-4,expy-1);
  791. write('ßÜ     Üß');
  792. gotoxy(expx-2,expy);
  793. write('°±±±°');
  794. gotoxy(expx-1,expy+1);
  795. write('°±°');
  796. gotoxy(expx-2,expy+2);
  797. write('ß   ß');
  798. textcolor(14);
  799. gotoxy(expx-1,expy-1); write('Ü Ü');
  800. END;
  801.  
  802. if aliennr=2 then begin
  803. textcolor(6);
  804. gotoxy(expx-4,expy+2-3);
  805. write('ßßßßßßßßßßßß');
  806. gotoxy(expx+6,expy+1-3); write('ÜÜÜ');
  807. gotoxy(expx-10,expy-3);
  808. write('²²²²±');
  809. gotoxy(expx-5,expy+1-3); write('±');
  810. gotoxy(expx-10,expy-1-3);
  811. write('|  |');
  812. textcolor(14);
  813. gotoxy(expx-9,expy-1-3); write('ÜÜ');
  814. textcolor(7);
  815. gotoxy(expx-3,expy+1-3); write('±°°°°°±');
  816. gotoxy(expx-2,expy-3); write('±°°°±');
  817. gotoxy(expx-1,expy-1-3); write('±±±');
  818. end;
  819.  
  820. if aliennr=4 then begin
  821. textcolor(6);
  822. gotoxy(expx-3+6,expy-1-4);
  823. write('Ü  Ü');
  824. gotoxy(expx+2,expy-4);
  825. write('³ ÜÜ ³');
  826. gotoxy(expx-5,expy+1-4);
  827. write('ÛÛ     ³ ÛÛ ³');
  828. gotoxy(expx-7,expy+2-4);
  829. write('ÛÛ      ÛÛÛÛÛÛÛ');
  830. gotoxy(expx-8,expy+3-4);
  831. write('ÛÛ    ÜÛÛÛÛ');
  832. gotoxy(expx-7,expy+4-4);
  833. write('ÛÛÛÛÛÛÛÛÛ');
  834. gotoxy(expx-5,expy+5-4);
  835. write('ßßÛÛÛÛ');
  836. textcolor(blue);
  837. gotoxy(expx+3,expy+1-4); write('°');
  838. gotoxy(expx+6,expy+1-4); write('°');
  839. textcolor(15);
  840. gotoxy(expx+3,expy+3-4); write('²  ²');
  841. textcolor(magenta);
  842. gotoxy(expx+4,expy+3-4); write('±');
  843. gotoxy(expx+5,expy+4-4); write('±');
  844. gotoxy(expx+5,expy+5-4); write('ß');
  845. END;
  846.  
  847. if aliennr=5 then begin
  848. textcolor(lightgreen);
  849. gotoxy(expx-5,expy-3); write('±         ±');
  850. gotoxy(expx-4,expy-2); write('±ÜÜÜÜÜÜ ±');
  851. gotoxy(expx-6,expy-1); write('ÜÛÛÛÛ   ÛÛÛÛÜ');
  852. gotoxy(expx-7,expy); write('ÛÛÛÛÛ     ÛÛÛÛÛ');
  853. gotoxy(expx-8,expy+1); write('ÛÛÛÛÛÛÛ   ÛÛÛÛÛÛÛ');
  854. gotoxy(expx-9,expy+2); write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
  855. gotoxy(expx-9,expy+3); write('ÛÛÛÛÛÛ        ÛÛÛÛÛ');
  856. gotoxy(expx-8,expy+4); write('ßßßßßßßßßßßßßßßß');
  857. textcolor(15);
  858. gotoxy(expx-1,expy-1);  write('Ü°Ü');
  859. gotoxy(expx-2,expy); write('°° °°');
  860. gotoxy(expx-1,expy+1);  write('ß°ß');
  861. textcolor(lightred);
  862. gotoxy(expx-3,expy+3); write('³³³³³³³³');
  863. gotoxy(expx,expy); write('±');
  864. end;
  865.  
  866. if aliennr=7 then begin
  867. textcolor(red);
  868. gotoxy(expx-6,expy+2); write('ß ß  ß ß   ß  ß');
  869. gotoxy(expx-6,expy+1); write('±  ± ±  ± ±  ±');
  870. gotoxy(expx-5,expy); write('ÜÛÛÛÛÛÛÛÛÛÛÜ');
  871. gotoxy(expx-2,expy-1); write('Û °° ÛÞ²');
  872. gotoxy(expx-1,expy-2); write('ÜÜÜÜ   ²');
  873. gotoxy(expx+7,expy-3); write('²');
  874. gotoxy(expx+4,expy-4); write('ßßÜ');
  875. textcolor(white); gotoxy(expx+3,expy-4); write('Ü');
  876. textcolor(lightmagenta);
  877. gotoxy(expx-1,expy-1); write('þ');
  878. gotoxy(expx+2,expy-1); write('þ');
  879. end;
  880.  
  881. if aliennr=8 then begin
  882. textcolor(8);
  883. gotoxy(expx-10,expy-3); write('°°°°              °°°±');
  884. gotoxy(expx-7,expy-2); write('°°±          °±±');
  885. gotoxy(expx-5,expy-1); write('°±±      ±±±');
  886. gotoxy(expx-3,expy); write('°±±±±±±±');
  887. gotoxy(expx-2,expy+1); write('°°°°°±');
  888. gotoxy(expx-3,expy+2); write('° Û  Û ±');
  889. gotoxy(expx-4,expy+3); write('°        ±');
  890. textcolor(yellow); gotoxy(expx-1,expy-1); write('Ü  Ü');
  891. end;
  892.  
  893. if aliennr=9 then begin
  894. textcolor(6);
  895. gotoxy(expx+3-6,expy-5); write('Ü    Ü  Ü');
  896. gotoxy(expx-7,expy-4); write('Ü  Û  Û Û  Û');
  897. gotoxy(expx-6,expy-3); write('Û          Ü');
  898. gotoxy(expx+6,expy-2); write('Û');
  899. textcolor(magenta);
  900. gotoxy(expx-4,expy-3); write('±±²±²±²');
  901. gotoxy(expx-5,expy-2); write('±±²   ±±±²');
  902. gotoxy(expx-6,expy-1); write('±²²²±±²±²±±²²');
  903. gotoxy(expx-7,expy); write('±±ÜßÜßÜßÜßÜßܲ±');
  904. gotoxy(expx-7,expy+1); write('±²²²±²±±²²²²²±±');
  905. gotoxy(expx-6,expy+2); write('±±±±²±±±±±±±');
  906. gotoxy(expx-5,expy+3); write('±²²±±²²²±²±');
  907. gotoxy(expx-5,expy+4); write('ßß ß ß ß  ß');
  908. textcolor(green);
  909. gotoxy(expx-2,expy-2); write('Û Û');
  910. end;
  911.  
  912. if aliennr=12then begin
  913.  
  914. textcolor(lightblue);
  915. gotoxy(expx-3,expy+4); write('°°ß°°°ß°');
  916. gotoxy(expx-4,expy+3); write('°°°°°°°°°°');
  917. gotoxy(expx-5,expy+2); write('°°°°°°°°°°°');
  918. gotoxy(expx-5,expy+1); write('Ü°°     °°');
  919. gotoxy(expx-4,expy); write('°°°°°°°°°°');
  920. gotoxy(expx-4,expy-1); write('Ü°° °° °°°');
  921. gotoxy(expx-2,expy-2); write('°°°°°°°Ü');
  922. gotoxy(expx-3,expy-3); write('Ü°°°°°');
  923. gotoxy(expx-1,expy-4); write('ÜÜ');
  924. textcolor(lightred); gotoxy(expx-1,expy-1); write('þ');
  925. gotoxy(expx+2,expy-1); write('þ');
  926. textcolor(yellow);
  927. gotoxy(expx-2,expy+1); write('³³³³³');
  928. end;
  929.  
  930. if aliennr=14then begin
  931. textcolor(lightgray);
  932. gotoxy(expx-3,expy-4); write('Ü     Ü');
  933. gotoxy(expx-3,expy-3); write('³     ³');
  934. gotoxy(expx-22,expy-2); write('ÜÜÜÜ°°°°Ü          ³ÜÜÜÜܳ          Ü°°°°ÜÜÜÜ');
  935. gotoxy(expx-24,expy-1); write('ܱ±±°°°°°°°°°ÜÜ     ±  ±±±  ±     ÜÜ°°°°±±±±±±±±Ü');
  936. gotoxy(expx-24,expy); write('ß±±±±±±°°°°°°°°°°°°Ü± ±±±±± ±Ü°°°°°°±±±±±±±±±±±±ß');
  937. gotoxy(expx-22,expy+1); write('ßßß±±±±°°±±±±±±±±ß±±±±±±±±±ß°°°°°±±±±±°°±°ßßß');
  938. gotoxy(expx-12,expy+2); write('ßßßßßß   ß²²²²²ß   ßßßßßßß');
  939. gotoxy(expx-1,expy+3); write('ß²ß');
  940. gotoxy(expx,expy+4); write('²');
  941. gotoxy(expx,expy+5); write('²');
  942. gotoxy(expx-1,expy+6); write('ßßß');
  943.  
  944. end;
  945.  
  946. if aliennr=17 then begin
  947. textcolor(lightgray);
  948. gotoxy(expx-2,expy-7); write('ÜÜÜÜÜ');
  949. gotoxy(expx-8,expy-6); write('ÜÜÜ°°°°°°°°±±ÜÜÜ');
  950. gotoxy(expx-15,expy-5); write('±±±±±±±°°   °°°°°°    ±Ü');
  951. gotoxy(expx-16,expy-4); write('±±   ±±°      °°±°°      °±±±±±');
  952. gotoxy(expx-18,expy-3); write('±±   ±±±±°    °±°°°°°°°    ±±±±±±');
  953. gotoxy(expx-19,expy-2);  write('±±   ±± ±± ±±°°°°°°±°°±°°°±±±±±  ±±±±');
  954. gotoxy(expx-19,expy-1);  write('±   ±±  ±  ±±°°°°°°±±°±±±°±±  ±±  ±±±±');
  955. gotoxy(expx-20,expy); write('ß ß  ±  ±± ±± ²²  ²² ²²  ²² ±±  ±± ±±  ±');
  956. gotoxy(expx-16,expy+1);write('±± ±±  ±±  ²²  ² ²  ²²  ±±  ±±  ±±ß ß');
  957. gotoxy(expx-17,expy+2); write('±±  ±  ±±    ²²     ²²   ±± ±± ±±');
  958. gotoxy(expx-18,expy+3); write('ß ß ±± ±±±     ²     ²    ±± ±± ±±');
  959. gotoxy(expx-15,expy+4); write('±    ±±               ±±  ±  ±');
  960. gotoxy(expx-16,expy+5); write('ß ß  ß ß              ß ß ß ßß ß');
  961. end;
  962.  
  963. if aliennr=3 then begin
  964. textcolor(lightred);
  965. gotoxy(expx-6,expy-2);
  966. write('ÜÜ         ÜÜ');
  967. gotoxy(expx-4,expy-1);
  968. write('ßÜ     Üß');
  969. gotoxy(expx-2,expy);
  970. write('°±±±°');
  971. gotoxy(expx-1,expy+1);
  972. write('°±°');
  973. gotoxy(expx-2,expy+2);
  974. write('ß   ß');
  975. textcolor(green);
  976. gotoxy(expx-1,expy-1); write('Ü Ü');
  977. END;
  978.  
  979. if aliennr=6 then begin
  980. textcolor(lightgreen);
  981. gotoxy(expx-4,expy+2-3);
  982. write('ßßßßßßßßßßßß');
  983. gotoxy(expx+6,expy+1-3); write('ÜÜÜ');
  984. gotoxy(expx-10,expy-3);
  985. write('²²²²±');
  986. gotoxy(expx-5,expy+1-3); write('±');
  987. gotoxy(expx-10,expy-1-3);
  988. write('Þ  Ý');
  989. textcolor(blue);
  990. gotoxy(expx-9,expy-1-3); write('ÜÜ');
  991. textcolor(7);
  992. gotoxy(expx-3,expy+1-3); write('±°°°°°±');
  993. gotoxy(expx-2,expy-3); write('±°°°±');
  994. gotoxy(expx-1,expy-1-3); write('±±±');
  995. end;
  996.  
  997. if aliennr=10then begin
  998. textcolor(lightmagenta);
  999. gotoxy(expx-3+6,expy-1-4);
  1000. write('Ü  Ü');
  1001. gotoxy(expx+2,expy-4);
  1002. write('Þ ÜÜ Ý');
  1003. gotoxy(expx-5,expy+1-4);
  1004. write('ÛÛ     Þ ÛÛ Ý');
  1005. gotoxy(expx-7,expy+2-4);
  1006. write('ÛÛ      ÛÛÛÛÛÛÛ');
  1007. gotoxy(expx-8,expy+3-4);
  1008. write('ÛÛ    ÜÛÛÛÛ');
  1009. gotoxy(expx-7,expy+4-4);
  1010. write('ÛÛÛÛÛÛÛÛÛ');
  1011. gotoxy(expx-5,expy+5-4);
  1012. write('ßßÛÛÛÛ');
  1013. textcolor(green);
  1014. gotoxy(expx+3,expy+1-4); write('°');
  1015. gotoxy(expx+6,expy+1-4); write('°');
  1016. textcolor(15);
  1017. gotoxy(expx+3,expy+3-4); write('²  ²');
  1018. textcolor(red);
  1019. gotoxy(expx+4,expy+3-4); write('±');
  1020. gotoxy(expx+5,expy+4-4); write('±');
  1021. gotoxy(expx+5,expy+5-4); write('ß');
  1022. END;
  1023.  
  1024. if aliennr=11then begin
  1025. textcolor(lightblue);
  1026. gotoxy(expx-5,expy-3); write('±         ±');
  1027. gotoxy(expx-4,expy-2); write('±ÜÜÜÜÜÜ ±');
  1028. gotoxy(expx-6,expy-1); write('ÜÛÛÛÛ   ÛÛÛÛÜ');
  1029. gotoxy(expx-7,expy); write('ÛÛÛÛÛ     ÛÛÛÛÛ');
  1030. gotoxy(expx-8,expy+1); write('ÛÛÛÛÛÛÛ   ÛÛÛÛÛÛÛ');
  1031. gotoxy(expx-9,expy+2); write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
  1032. gotoxy(expx-9,expy+3); write('ÛÛÛÛÛÛ        ÛÛÛÛÛ');
  1033. gotoxy(expx-8,expy+4); write('ßßßßßßßßßßßßßßßß');
  1034. textcolor(15);
  1035. gotoxy(expx-1,expy-1);  write('Ü°Ü');
  1036. gotoxy(expx-2,expy); write('°° °°');
  1037. gotoxy(expx-1,expy+1);  write('ß°ß');
  1038. textcolor(red);
  1039. gotoxy(expx-3,expy+3); write('³³³³³³³³');
  1040. gotoxy(expx,expy); write('±');
  1041. end;
  1042.  
  1043. if aliennr=13then begin
  1044. textcolor(yellow);
  1045. gotoxy(expx-6,expy+2); write('ß ß  ß ß   ß  ß');
  1046. gotoxy(expx-6,expy+1); write('±  ± ±  ± ±  ±');
  1047. gotoxy(expx-5,expy); write('ÜÛÛÛÛÛÛÛÛÛÛÜ');
  1048. gotoxy(expx-2,expy-1); write('Û °° ÛÞ²');
  1049. gotoxy(expx-1,expy-2); write('ÜÜÜÜ   ²');
  1050. gotoxy(expx+7,expy-3); write('²');
  1051. gotoxy(expx+4,expy-4); write('ßßÜ');
  1052. textcolor(red); gotoxy(expx+3,expy-4); write('Ü');
  1053. textcolor(magenta);
  1054. gotoxy(expx-1,expy-1); write('þ');
  1055. gotoxy(expx+2,expy-1); write('þ');
  1056. end;
  1057.  
  1058. if aliennr=15then begin
  1059. textcolor(lightblue);
  1060. gotoxy(expx-10,expy-3); write('°°°°              °°°±');
  1061. gotoxy(expx-7,expy-2); write('°°±          °±±');
  1062. gotoxy(expx-5,expy-1); write('°±±      ±±±');
  1063. gotoxy(expx-3,expy); write('°±±±±±±±');
  1064. gotoxy(expx-2,expy+1); write('°°°°°±');
  1065. gotoxy(expx-3,expy+2); write('° Û  Û ±');
  1066. gotoxy(expx-4,expy+3); write('°        ±');
  1067. textcolor(red); gotoxy(expx-1,expy-1); write('Ü  Ü');
  1068. end;
  1069.  
  1070. if aliennr=16then begin
  1071. textcolor(6);
  1072. gotoxy(expx+3-6,expy-5); write('Ü    Ü  Ü');
  1073. gotoxy(expx-7,expy-4); write('Ü  Û  Û Û  Û');
  1074. gotoxy(expx-6,expy-3); write('Û          Ü');
  1075. gotoxy(expx+6,expy-2); write('Û');
  1076. textcolor(lightmagenta);
  1077. gotoxy(expx-4,expy-3); write('±±²±²±²');
  1078. gotoxy(expx-5,expy-2); write('±±²   ±±±²');
  1079. gotoxy(expx-6,expy-1); write('±²²²±±²±²±±²²');
  1080. gotoxy(expx-7,expy); write('±±ÜßÜßÜßÜßÜßܲ±');
  1081. gotoxy(expx-7,expy+1); write('±²²²±²±±²²²²²±±');
  1082. gotoxy(expx-6,expy+2); write('±±±±²±±±±±±±');
  1083. gotoxy(expx-5,expy+3); write('±²²±±²²²±²±');
  1084. gotoxy(expx-5,expy+4); write('ßß ß ß ß  ß');
  1085. textcolor(lightgreen);
  1086. gotoxy(expx-2,expy-2); write('Û Û');
  1087. end;
  1088.  
  1089. if aliennr=18then begin
  1090.  
  1091. textcolor(lightblue);
  1092. gotoxy(expx-3,expy+4); write('°°ß°°°ß°');
  1093. gotoxy(expx-4,expy+3); write('°°°°°°°°°°');
  1094. gotoxy(expx-5,expy+2); write('°°°°°°°°°°°');
  1095. gotoxy(expx-5,expy+1); write('Ü°°     °°');
  1096. gotoxy(expx-4,expy); write('°°°°°°°°°°');
  1097. gotoxy(expx-4,expy-1); write('Ü°° °° °°°');
  1098. gotoxy(expx-2,expy-2); write('°°°°°°°Ü');
  1099. gotoxy(expx-3,expy-3); write('Ü°°°°°');
  1100. gotoxy(expx-1,expy-4); write('ÜÜ');
  1101. textcolor(yellow); gotoxy(expx-1,expy-1); write('þ');
  1102. gotoxy(expx+2,expy-1); write('þ');
  1103. textcolor(red);
  1104. gotoxy(expx-2,expy+1); write('³³³³³');
  1105. end;
  1106.  
  1107. if aliennr=19then begin
  1108. textcolor(lightmagenta);
  1109. gotoxy(expx-3,expy-4); write('Ü     Ü');
  1110. gotoxy(expx-3,expy-3); write('³     ³');
  1111. gotoxy(expx-22,expy-2); write('ÜÜÜÜ°°°°Ü          ³ÜÜÜÜܳ          Ü°°°°ÜÜÜÜ');
  1112. gotoxy(expx-24,expy-1); write('ܱ±±°°°°°°°°°ÜÜ     ±  ±±±  ±     ÜÜ°°°°±±±±±±±±Ü');
  1113. gotoxy(expx-24,expy); write('ß±±±±±±°°°°°°°°°°°°Ü± ±±±±± ±Ü°°°°°°±±±±±±±±±±±±ß');
  1114. gotoxy(expx-22,expy+1); write('ßßß±±±±°°±±±±±±±±ß±±±±±±±±±ß°°°°°±±±±±°°±°ßßß');
  1115. gotoxy(expx-12,expy+2); write('ßßßßßß   ß²²²²²ß   ßßßßßßß');
  1116. gotoxy(expx-1,expy+3); write('ß²ß');
  1117. gotoxy(expx,expy+4); write('²');
  1118. gotoxy(expx,expy+5); write('²');
  1119. gotoxy(expx-1,expy+6); write('ßßß');
  1120.  
  1121. end;
  1122.  
  1123. if aliennr=20 then begin
  1124. textcolor(lightmagenta);
  1125. gotoxy(expx-2,expy-7); write('ÜÜÜÜÜ');
  1126. gotoxy(expx-8,expy-6); write('ÜÜÜ°°°°°°°°±±ÜÜÜ');
  1127. gotoxy(expx-15,expy-5); write('±±±±±±±°°   °°°°°°    ±Ü');
  1128. gotoxy(expx-16,expy-4); write('±±   ±±°      °°±°°      °±±±±±');
  1129. gotoxy(expx-18,expy-3); write('±±   ±±±±°    °±°°°°°°°    ±±±±±±');
  1130. gotoxy(expx-19,expy-2);  write('±±   ±± ±± ±±°°°°°°±°°±°°°±±±±±  ±±±±');
  1131. gotoxy(expx-19,expy-1);  write('±   ±±  ±  ±±°°°°°°±±°±±±°±±  ±±  ±±±±');
  1132. gotoxy(expx-20,expy); write('ß ß  ±  ±± ±± ²²  ²² ²²  ²² ±±  ±± ±±  ±');
  1133. gotoxy(expx-16,expy+1);write('±± ±±  ±±  ²²  ² ²  ²²  ±±  ±±  ±±ß ß');
  1134. gotoxy(expx-17,expy+2); write('±±  ±  ±±    ²²     ²²   ±± ±± ±±');
  1135. gotoxy(expx-18,expy+3); write('ß ß ±± ±±±     ²     ²    ±± ±± ±±');
  1136. gotoxy(expx-15,expy+4); write('±    ±±               ±±  ±  ±');
  1137. gotoxy(expx-16,expy+5); write('ß ß  ß ß              ß ß ß ßß ß');
  1138. end;
  1139.  
  1140. END;
  1141.  
  1142.  
  1143. PROCEDURE Draw_Cross;
  1144. BEGIN
  1145. textcolor(white);
  1146. gotoxy(Posx-1,posy); write('ÄÅÄ');
  1147. END;
  1148.  
  1149. PROCEDURE Move_Cross;
  1150. BEGIN
  1151. gotoxy(posx-1,posy);
  1152. write('   ');
  1153. if (ch='1') and ((posx<>1) and (posy<>22)) then begin
  1154.    posx:=posx-1;
  1155.    posy:=posy+1;
  1156.    end;
  1157.  
  1158. if (ch='2') and (posy<>22) then begin
  1159.    posx:=posx;
  1160.    posy:=posy+1;
  1161.    end;
  1162. if (ch='3') and (posx<>79) and (posy<>22) then begin
  1163.    posx:=posx+1;
  1164.    posy:=posy+1;
  1165.    end;
  1166. if (ch='4') and (posx<>1) then begin
  1167.    posx:=posx-1;
  1168.    posy:=posy;
  1169.    end;
  1170. if (ch='6') and (posx<>79) then begin
  1171.    posx:=posx+1;
  1172.    posy:=posy;
  1173.    end;
  1174. if (ch='7') and (posx<>1) and (posy<>1) then begin
  1175.    posx:=posx-1;
  1176.    posy:=posy-1;
  1177.    end;
  1178. if (ch='8') and (posy<>1) then begin
  1179.    posx:=posx;
  1180.    posy:=posy-1;
  1181.    end;
  1182. if (ch='9') and (posx<>79) and (posy<>1) then begin
  1183.    posx:=posx+1;
  1184.    posy:=posy-1;
  1185.    end;
  1186. Draw_Cross;
  1187. END;
  1188.  
  1189. PROCEDURE Daneben;
  1190. BEGIN
  1191. gotoxy(posx,posy);
  1192. textcolor(7);
  1193. write('ú');
  1194. sound(65);
  1195. delay(50);
  1196. nosound;
  1197. draw_alien;
  1198. draw_cross;
  1199. END;
  1200.  
  1201. PROCEDURE Gun;
  1202. BEGIN
  1203. Bullets:=Bullets-1;
  1204. Status;
  1205. if ((posx<>sp1x) and (posy<>sp1y)) or
  1206.    ((posx<>sp2x) and (posy<>sp2y)) or
  1207.    ((posx<>sp3x) and (posy<>sp3y)) or
  1208.    ((posx<>sp4x) and (posy<>sp4y)) or
  1209.    ((posx<>sp5x) and (posy<>sp5y)) then Daneben;
  1210.  
  1211.    if ((posx=sp1x) and (posy=sp1y)) or
  1212.    ((posx=sp2x) and (posy=sp2y)) or
  1213.    ((posx=sp3x) and (posy=sp3y)) or
  1214.    ((posx=sp4x) and (posy=sp4y)) or
  1215.    ((posx=sp5x) and (posy=sp5y)) then begin
  1216.    w20:=random(20)+1;
  1217.    if w20>ACC then Daneben;
  1218.    if w20<=ACC then BEGIN
  1219.       Schaden:=random(POW)+1;
  1220.       gotoxy(posx,posy); textcolor(7);
  1221.       write('ù'); sound(65); delay(50); nosound;
  1222.       gotoxy(posx,posy); textcolor(lightred);
  1223.       write('þ');
  1224.       sound(260); delay(50); nosound;
  1225.       draw_alien;
  1226.       LP:=LP-Schaden;
  1227.       draw_cross;
  1228.       end;
  1229. END;
  1230. END;
  1231.  
  1232.  
  1233. PROCEDURE Faust;
  1234. BEGIN
  1235.   if ((posx=sp1x) and (posy=sp1y)) or
  1236.    ((posx=sp2x) and (posy=sp2y)) or
  1237.    ((posx=sp3x) and (posy=sp3y)) or
  1238.    ((posx=sp4x) and (posy=sp4y)) or
  1239.    ((posx=sp5x) and (posy=sp5y)) then begin
  1240. w20:=random(20)+1;
  1241. if w20<=ACC then begin
  1242.    textcolor(red); gotoxy(posx,posy); write('²');
  1243.   sound(70); delay(50); nosound;
  1244.  Schaden:=random(6);
  1245.   armour:=armour-random(2);
  1246.   LP:=LP-Schaden;
  1247.   Status;
  1248.   Draw_Alien;
  1249.   Draw_Cross;
  1250.   END;
  1251.   END;
  1252.   END;
  1253.    PROCEDURE Ton;
  1254.    BEGIN
  1255.    for m:=30 to 100 do begin
  1256.   sound(m); delay(20);
  1257.   end;
  1258.   nosound;
  1259.   END;
  1260.  
  1261.   PROCEDURE Rakete;
  1262.   BEGIN
  1263.   Missles:=Missles-1;
  1264.   Status;
  1265.   Ton;
  1266.   Explode;
  1267.   Draw_Alien;
  1268.   Draw_Cross;
  1269.   Schaden:=random(300)+1;
  1270.   LP:=LP-Schaden;
  1271.   END;
  1272.  
  1273. PROCEDURE Bomb;
  1274. BEGIN
  1275. Bombs:=Bombs-1;
  1276. Status;
  1277. Draw_Alien;
  1278. Draw_Cross;
  1279. for a:=100 downto 30 do begin
  1280. sound(a);
  1281. delay(20);
  1282. end;
  1283. nosound;
  1284. textcolor(14);
  1285. for a:=1 to 22 do begin
  1286.   gotoxy(1,a);
  1287.   for m:=1 to 80 do write('Û');
  1288.   end;
  1289. clrscr;
  1290. draw_alien;
  1291. draw_cross;
  1292. Schaden:=random(50)+1;
  1293. Lp:=LP-Schaden;
  1294. END;
  1295.  
  1296.  
  1297.  
  1298. PROCEDURE Alien_Attacks;
  1299. BEGIN
  1300.    w20:=random(20)+1; if w20<AF then BEGIN
  1301.       Hits:=random(TP)+1;
  1302.       sound(30); delay(65); sound(60); delay(32); nosound;
  1303.       Armour:=Armour-Hits;
  1304.       Status;
  1305.       end;
  1306. draw_alien;
  1307. draw_cross;
  1308. END;
  1309.  
  1310. PROCEDURE MonsterMove;
  1311. BEGIN
  1312. FeldX:=random(maxf)+1;
  1313. Feldy:=random(maxf)+1;
  1314. udx:=random(2)+1;     {1 = +; 2 = -}
  1315. udy:=random(2)+1;
  1316. if udx=2 then udx:=-1;
  1317. if udy=2 then udy:=-1;
  1318.  
  1319. ExpX:=ExpX+(Feldx*udx);
  1320. ExpY:=Expy+(Feldy*udy);
  1321.  
  1322. if expx>55 then expx:=60;
  1323. if expx<25 then expx:=20;
  1324. if expy>17 then expy:=17;
  1325. if expy<6  then expy:=6;
  1326.  
  1327.  
  1328. if (sp1x<>10000) and (sp1y<>10000) then begin
  1329. sp1x:=expx+vp1x;
  1330. sp1y:=expy+vp1y;
  1331. end;
  1332.  
  1333. if (sp2x<>10000) and (sp2y<>10000) then begin
  1334. sp2x:=expx+vp2x;
  1335. sp2y:=expy+vp2y;
  1336. end;
  1337. if (sp3x<>10000) and (sp3y<>10000) then begin
  1338. sp3x:=expx+vp3x;
  1339. sp3y:=expy+vp3y;
  1340. end;
  1341. if (sp4x<>10000) and (sp4y<>10000) then begin
  1342. sp4x:=expx+vp4x;
  1343. sp4y:=expy+vp4y;
  1344. end;
  1345. if (sp5x<>10000) and (sp5y<>10000) then begin
  1346. sp5x:=expx+vp5x;
  1347. sp5y:=expy+vp5y;
  1348. end;
  1349. clrscr;
  1350. Draw_alien;
  1351. Draw_Cross;
  1352. END;
  1353.  
  1354.  
  1355. PROCEDURE Aliens_turn;
  1356. BEGIN
  1357. if (sp1x<>10000) and (sp1y<>10000) then begin
  1358. sp1x:=expx+vp1x;
  1359. sp1y:=expy+vp1y;
  1360. end;
  1361.  
  1362. if (sp2x<>10000) and (sp2y<>10000) then begin
  1363. sp2x:=expx+vp2x;
  1364. sp2y:=expy+vp2y;
  1365. end;
  1366. if (sp3x<>10000) and (sp3y<>10000) then begin
  1367. sp3x:=expx+vp3x;
  1368. sp3y:=expy+vp3y;
  1369. end;
  1370. if (sp4x<>10000) and (sp4y<>10000) then begin
  1371. sp4x:=expx+vp4x;
  1372. sp4y:=expy+vp4y;
  1373. end;
  1374. if (sp5x<>10000) and (sp5y<>10000) then begin
  1375. sp5x:=expx+vp5x;
  1376. sp5y:=expy+vp5y;
  1377. end;
  1378.  
  1379. m:=random(3)+1;
  1380. if random<>1 then begin
  1381.  
  1382. w20:=random(20)+1;
  1383. if w20<=Moveit then MonsterMove else Alien_attacks;
  1384. end;
  1385. END;
  1386.  
  1387.  
  1388. PROCEDURE Explode;
  1389. BEGIN
  1390. for m:=1 to 7 do BEGIN
  1391. sound(20+m*10);
  1392.  
  1393. a:=random(3)+1;
  1394. if a=1 then textcolor(red);
  1395. if a=2 then textcolor(lightred);
  1396. if a=3 then textcolor(yellow);
  1397.  
  1398. gotoxy(expX,expY); write('Û');
  1399. delay(5);
  1400. gotoxy(expX+m,expY); write('Û');
  1401. a:=random(3)+1;
  1402. if a=1 then textcolor(red);
  1403. if a=2 then textcolor(lightred);
  1404. if a=3 then textcolor(yellow);
  1405.  
  1406. gotoxy(expX+m,expY+m); write('Û');
  1407. delay(5);
  1408. gotoxy(expX,expY+m); write('Û');
  1409. a:=random(3)+1;
  1410. if a=1 then textcolor(red);
  1411. if a=2 then textcolor(lightred);
  1412. if a=3 then textcolor(yellow);
  1413.  
  1414. gotoxy(expX-m,expY); write('Û');
  1415. delay(5);
  1416. gotoxy(expX,expY-m); write('Û');
  1417. a:=random(3)+1;
  1418. if a=1 then textcolor(red);
  1419. if a=2 then textcolor(lightred);
  1420. if a=3 then textcolor(yellow);
  1421.  
  1422. gotoxy(expX+m,expY-m); write('Û');
  1423. delay(5);
  1424. gotoxy(expX-m,expY+m); write('Û');
  1425.  
  1426. if a=1 then textcolor(red);
  1427. if a=2 then textcolor(lightred);
  1428. if a=3 then textcolor(yellow);
  1429.  
  1430. gotoxy(expX-m,expY-m); write('Û');
  1431. delay(5);
  1432.  
  1433. end;
  1434. nosound;
  1435. sound(30); delay(100); nosounD;
  1436. for m:=1 to 7 do begin
  1437. textcolor(darkgray);
  1438. gotoxy(expX,expY); write('Û');
  1439. delay(5);
  1440. gotoxy(expX+m,expY); write('Û');
  1441.  
  1442. gotoxy(expX+m,expY+m); write('Û');
  1443. delay(5);
  1444. gotoxy(expX,expY+m); write('Û');
  1445.  
  1446. gotoxy(expX-m,expY); write('Û');
  1447. delay(5);
  1448. gotoxy(expX,expY-m); write('Û');
  1449.  
  1450. gotoxy(expX+m,expY-m); write('Û');
  1451. delay(5);
  1452. gotoxy(expX-m,expY+m); write('Û');
  1453.  
  1454. gotoxy(expX-m,expY-m); write('Û');
  1455. delay(5);
  1456. end;
  1457. END;
  1458.  
  1459.  
  1460. PROCEDURE Explode1;
  1461. BEGIN
  1462. for m:=1 to 7 do BEGIN
  1463. sound(20+m*10);
  1464.  
  1465. a:=random(3)+1;
  1466. if a=1 then textcolor(red);
  1467. if a=2 then textcolor(lightred);
  1468. if a=3 then textcolor(magenta);
  1469.  
  1470. gotoxy(expX,expY); write('Û');
  1471. delay(5);
  1472. gotoxy(expX+m,expY); write('Û');
  1473. a:=random(3)+1;
  1474. if a=1 then textcolor(red);
  1475. if a=2 then textcolor(lightred);
  1476. if a=3 then textcolor(magenta);
  1477.  
  1478. gotoxy(expX+m,expY+m); write('Û');
  1479. delay(5);
  1480. gotoxy(expX,expY+m); write('Û');
  1481. a:=random(3)+1;
  1482. if a=1 then textcolor(red);
  1483. if a=2 then textcolor(lightred);
  1484. if a=3 then textcolor(magenta);
  1485.  
  1486. gotoxy(expX-m,expY); write('Û');
  1487. delay(5);
  1488. gotoxy(expX,expY-m); write('Û');
  1489. a:=random(3)+1;
  1490. if a=1 then textcolor(red);
  1491. if a=2 then textcolor(lightred);
  1492. if a=3 then textcolor(magenta);
  1493.  
  1494. gotoxy(expX+m,expY-m); write('Û');
  1495. delay(5);
  1496. gotoxy(expX-m,expY+m); write('Û');
  1497.  
  1498. if a=1 then textcolor(red);
  1499. if a=2 then textcolor(lightred);
  1500. if a=3 then textcolor(magenta);
  1501.  
  1502. gotoxy(expX-m,expY-m); write('Û');
  1503. delay(5);
  1504.  
  1505. end;
  1506. nosound;
  1507. sound(30); delay(100); nosounD;
  1508. for m:=1 to 7 do begin
  1509. textcolor(darkgray);
  1510. gotoxy(expX,expY); write('Û');
  1511. delay(5);
  1512. gotoxy(expX+m,expY); write('Û');
  1513.  
  1514. gotoxy(expX+m,expY+m); write('Û');
  1515. delay(5);
  1516. gotoxy(expX,expY+m); write('Û');
  1517.  
  1518. gotoxy(expX-m,expY); write('Û');
  1519. delay(5);
  1520. gotoxy(expX,expY-m); write('Û');
  1521.  
  1522. gotoxy(expX+m,expY-m); write('Û');
  1523. delay(5);
  1524. gotoxy(expX-m,expY+m); write('Û');
  1525.  
  1526. gotoxy(expX-m,expY-m); write('Û');
  1527. delay(5);
  1528. end;
  1529. END;
  1530.  
  1531. PROCEDURE Outro; FORWARD;
  1532. PROCEDURE Killed;
  1533. BEGIN
  1534. Score:=Score+sc;
  1535. if Score>=Scorealt+(Level*100) then BEGIN
  1536. Armour:=Armour+random(5001);
  1537. Bullets:=Bullets+random(1001);
  1538. Bombs:=Bombs+random(6);
  1539. Missles:=Missles+random(3);
  1540. POW:=POW+random(4);
  1541. ACC:=ACC+random(3); if ACC>20 then ACC:=20;
  1542. Scorealt:=Score;
  1543. Level:=Level+1;
  1544. END;
  1545. Status;
  1546. Explode1;
  1547. delay(100);
  1548. clrscr;
  1549. delay(500);
  1550. If aliennr=20 then Outro;
  1551. draw_cross;
  1552. expx:=0;
  1553. expy:=0;
  1554. lp:=0;
  1555. moveit:=0;
  1556. maxf:=0;
  1557. feldx:=0;
  1558. feldy:=0;
  1559. udx:=0;
  1560. udy:=0;
  1561. dead:='';
  1562. aliennr:=0;
  1563. enemy:='';
  1564. END;
  1565.  
  1566. PROCEDURE GAMEOVER;
  1567. BEGIN
  1568. dead:='';
  1569. window(1,1,80,25);
  1570. sound(1000);
  1571. delay(50);
  1572. sound(40);
  1573. delay(500);
  1574. Blood;
  1575. textcolor(lightred+128);
  1576. gotoxy(33,10);
  1577. write('* GAME OVER *');
  1578. delay(5000);
  1579. textcolor(lightred);
  1580. gotoxy(33,12);
  1581. write('* Try again *');
  1582. delay(5000);
  1583. halt;
  1584. END;
  1585.  
  1586. PROCEDURE Fire;
  1587. BEGIN
  1588. FOR posx:=1 to 30 do BEGIN
  1589.  
  1590.   gotoxy(37,13);
  1591.    for m:=1 to 7 do begin
  1592.     a:=random(3)+1;
  1593.     if a=1 then textcolor(red);
  1594.     if a=2 then textcolor(lightred);
  1595.     if a=3 then textcolor(yellow);
  1596.    write('Ü');
  1597.    end;
  1598.  
  1599.    gotoxy(44,13);
  1600.    for m:=1 to 3 do begin
  1601.     a:=random(3)+1;
  1602.     if a=1 then textcolor(red);
  1603.     if a=2 then textcolor(lightred);
  1604.     if a=3 then textcolor(yellow);
  1605.    write('Û');
  1606.    end;
  1607.  
  1608.    gotoxy(47,13);
  1609.    a:=random(3)+1;
  1610.     if a=1 then textcolor(red);
  1611.     if a=2 then textcolor(lightred);
  1612.     if a=3 then textcolor(yellow);
  1613.    write('Ü');
  1614.  
  1615.    gotoxy(34,14);
  1616.    for m:=1 to 14 do begin
  1617.     a:=random(3)+1;
  1618.     if a=1 then textcolor(red);
  1619.     if a=2 then textcolor(lightred);
  1620.     if a=3 then textcolor(yellow);
  1621.    write('Û');
  1622.    end;
  1623.  
  1624.     gotoxy(37,15);
  1625.    for m:=1 to 7 do begin
  1626.     a:=random(3)+1;
  1627.     if a=1 then textcolor(red);
  1628.     if a=2 then textcolor(lightred);
  1629.     if a=3 then textcolor(yellow);
  1630.    write('ß');
  1631.    end;
  1632.  
  1633.    gotoxy(44,15);
  1634.    for m:=1 to 3 do begin
  1635.     a:=random(3)+1;
  1636.     if a=1 then textcolor(red);
  1637.     if a=2 then textcolor(lightred);
  1638.     if a=3 then textcolor(yellow);
  1639.    write('Û');
  1640.    end;
  1641.  
  1642.    gotoxy(47,15);
  1643.    a:=random(3)+1;
  1644.     if a=1 then textcolor(red);
  1645.     if a=2 then textcolor(lightred);
  1646.     if a=3 then textcolor(yellow);
  1647.    write('ß');
  1648.  
  1649. FOR posy:=1 to 10 do begin
  1650.  
  1651.    x:=random(8)+1;
  1652.    if x=1 then x:=45;
  1653.    if x=2 then x:=43;
  1654. if x=3 then x:=40;
  1655. if x=4 then x:=37;
  1656. if x=5 then x:=35;
  1657. if x=6 then x:=32;
  1658. if x=7 then x:=30;
  1659. if x=8 then x:=28;
  1660.  
  1661.    y:=random(5)+1;
  1662.    if y=1 then y:=14;
  1663.    if y=2 then y:=15;
  1664. if y=3 then y:=13;
  1665. if y=4 then y:=16;
  1666. if y=5 then y:=12;
  1667.  
  1668.     a:=random(3)+1;
  1669.     if a=1 then textcolor(red);
  1670.     if a=2 then textcolor(lightred);
  1671.     if a=3 then textcolor(yellow);
  1672.  
  1673.      vp1x:=random(3)+1;
  1674.     if vp1x=1 then begin
  1675.     gotoxy(x,y); write('Ü');
  1676.     sound(60);
  1677.     delay(8);
  1678.     nosound;
  1679.     gotoxy(x,y); write(' ');
  1680.      end;
  1681.      if vp1x=2 then begin
  1682.     gotoxy(x,y); write('ß');
  1683.     sound(65);
  1684.     delay(8);
  1685.     nosound;
  1686.     gotoxy(x,y); write(' ');
  1687.     end;
  1688.      if vp1x=3 then begin
  1689.     gotoxy(x,y); write('Û');
  1690.     sound(70);
  1691.     delay(8);
  1692.     nosound;
  1693.     gotoxy(x,y); write(' ');
  1694.     end;
  1695.  
  1696. END;
  1697.  delay(10);
  1698.       END;
  1699. gotoxy(01,12); write('                                               ');
  1700. gotoxy(01,13); write('                                               ');
  1701. gotoxy(01,14); write('                                               ');
  1702. gotoxy(01,15); write('                                               ');
  1703. gotoxy(01,16); write('                                               ');
  1704.  
  1705.  
  1706.    END;
  1707.  
  1708. PROCEDURE OUTRO;
  1709. BEGIN
  1710. delay(1000);
  1711. textbackground(0);
  1712. window(1,1,80,25);
  1713. clrscr;
  1714. delay(1000);
  1715. textcolor(lightred+128);
  1716. gotoxy(30,1); write('--CONGRATIULATIONS--');
  1717. textcolor(red);
  1718. gotoxy(13,3); write('You are the one who stroke the demon-invasion once more!');
  1719. delay(2500);
  1720.  
  1721. textcolor(7);
  1722. gotoxy(60,7); write('ÜÜÛÛÜÜ');
  1723. gotoxy(59,8); write('Û      Û');
  1724. gotoxy(59,9); write('ÛÛÛÜÜÛÛÛ');
  1725. gotoxy(60,10); write('ß    ß');
  1726.  
  1727. gotoxy(48,13); write('ÜÜ     Ü_Ü');
  1728. gotoxy(48,14); write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
  1729. gotoxy(48,15); write('ßß      ÛÛ');
  1730. gotoxy(56,16); write('ÛÛ');
  1731. gotoxy(57,17); write('ÛÛ');
  1732. textcolor(lightblue); gotoxy(61,8); write('þ  þ');
  1733. textcolor(brown);
  1734. gotoxy(61,13); write('ÜÜÜ');
  1735. gotoxy(62,15); write('ÛÛ');
  1736.  
  1737. gotoxy(57,21); write('±±±      ±±±');
  1738. gotoxy(57,22); write('±±±      ±±±');
  1739. gotoxy(57,23); write('±±±      ±±±');
  1740. gotoxy(54,24); write('±±±±±±      ±±±±±±');
  1741. textcolor(white);
  1742. gotoxy(55,16); write('ß');
  1743. gotoxy(62,14); write('Û');
  1744. textcolor(magenta);
  1745. gotoxy(1,25); for m:=1 to 79 do write('Û');
  1746. gotoxy(61,10); write('ÛÛÛÛ');
  1747. gotoxy(55,11); write('ÜÜÜÛÛÛÛÛÛÛÛÛÛÜÜÜ');
  1748. gotoxy(55,12); write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
  1749. gotoxy(54,13); write('Û');
  1750. gotoxy(58,13); write('ÛÛÛ');
  1751. gotoxy(64,13); write('ÛÛÛÛÛÛ');
  1752. gotoxy(63,14); write('ÛÛÛÛÛÛ');
  1753. gotoxy(54,15); write('ÛÛ');
  1754. gotoxy(58,15); write('ÛÛÛÛ');
  1755. gotoxy(64,15); write('ÛÛÛÛ');
  1756. textcolor(lightblue);
  1757. gotoxy(58,16); write('°°°°°°°°°°');
  1758. gotoxy(59,17); write('°°°°°°°°°');
  1759. gotoxy(58,18); write('°°°    °°°');
  1760. gotoxy(57,19); write('°°°      °°°');
  1761. gotoxy(57,20); write('°°°      °°°');
  1762. delay(5000);
  1763. Fire;
  1764. delay(100);
  1765. textcolor(white);
  1766. gotoxy(29,14);
  1767. write('IDea by B. M”ller');
  1768. delay(5000);
  1769. gotoxy(29,14);
  1770. write('                 ');
  1771.  
  1772. Fire;
  1773. delay(100);
  1774. textcolor(white);
  1775. gotoxy(26,14);
  1776. write('Graph-X by B. M”ller');
  1777. delay(5000);
  1778. gotoxy(26,14);
  1779. write('                    ');
  1780.  
  1781. Fire;
  1782. delay(100);
  1783. textcolor(white);
  1784. gotoxy(29,14);
  1785. write('Sounds by DJ B™MM');
  1786. delay(5000);
  1787. gotoxy(29,14);
  1788. write('                 ');
  1789.  
  1790. Fire;
  1791. delay(100);
  1792. textcolor(white);
  1793. gotoxy(24,14);
  1794. write('Programed by B. M”ller');
  1795. delay(5000);
  1796. gotoxy(24,14);
  1797. write('                      ');
  1798. Fire;
  1799. delay(2000);
  1800.  
  1801. textcolor(white);
  1802. gotoxy(30,10);
  1803. write('Special Thanks to');
  1804. delay(1000);
  1805. gotoxy(30,12); write('id SOFTWARE');
  1806. delay(5000);
  1807.  
  1808. gotoxy(30,10);
  1809. write('                 ');
  1810. gotoxy(30,12); write('           ');
  1811. delay(1000);
  1812.  
  1813. Fire;
  1814. delay(100);
  1815. textcolor(white);
  1816. gotoxy(18,14);
  1817. write('Presented by B™MMSOFT (1995)');
  1818. delay(5000);
  1819. gotoxy(18,14);
  1820. write('                            ');
  1821. Fire;
  1822. delay(2000);
  1823.  
  1824. textcolor(13);
  1825. gotoxy(1,7);
  1826. write('ÜÜÜÜÜ Ü   Ü ÜÜÜÜ  ÜÜÜÜ Ü   Ü ÜÜÜ');
  1827. gotoxy(1,8);
  1828. write('  Û   Û   Û Û     Û    Û   Û Û  Û');
  1829. gotoxy(1,9);
  1830.  
  1831. write('  Û   Û   Û Û     Û    ÛÛ  Û Û  Û');
  1832. gotoxy(1,10);
  1833.  
  1834. write('  Û   ÛÛÛÛÛ ÛÛÛ   ÛÛÛ  Û Û Û Û  Û');
  1835. gotoxy(1,11);
  1836.  
  1837. write('  Û   Û   Û Û     Û    Û Û Û Û  Û');
  1838. gotoxy(1,12);
  1839.  
  1840. write('  Û   Û   Û Û     Û    Û  ÛÛ Û  Û');
  1841. gotoxy(1,13);
  1842.  
  1843. write('  ß   ß   ß ßßßß  ßßßß ß   ß ßßß');
  1844.  
  1845. delay(2500);
  1846.  
  1847. gotoxy(3,16);
  1848. textcolor(14);
  1849. write('Maybe the aliens will strike back again...');
  1850. delay(10000);
  1851. clrscr;
  1852. textbackground(red);
  1853. textcolor(0);
  1854. gotoxy(9,11);
  1855. write('You must wait for "XXXXX " until id SOFTWARE publishes QUAKE!');
  1856. delay(1000);
  1857. textcolor(0);
  1858. gotoxy(28,15);
  1859. write('Until then, play XXXX2!');
  1860. delay(5000);
  1861. halt;
  1862. END;
  1863.  
  1864.  
  1865.  
  1866. PROCEDURE Alien_Dead;
  1867. BEGIN
  1868. if lp<=0 then dead:='alien';
  1869. END;
  1870.  
  1871. PROCEDURE Hero_Dead;
  1872. BEGIN
  1873. if armour<0 then dead:='hero';
  1874. END;
  1875.  
  1876.  
  1877. PROCEDURE Start_Game;
  1878. BEGIN
  1879. repeat
  1880. Enemychoose;
  1881.  repeat
  1882.    repeat
  1883.      Draw_Alien;
  1884.      Draw_Cross;
  1885.      Aliens_turn;
  1886.      ch:=readkey;
  1887.    until ch in ['1','2','3','4','6','7','8','9','x','y','c','v','!','?'];
  1888.    if (ch='x') and (bombs<>0) then bomb;
  1889.    if (ch='y') and (bullets<>0) then gun;
  1890.    if (ch='c') and (missles<>0) then Rakete;
  1891.    if ch='v' then Faust;
  1892.    if ch='!' then begin
  1893.  
  1894.    armour:=armour+100;
  1895.    bullets:=bullets+100;
  1896.    bombs:=bombs+10;
  1897.    missles:=missles+5;
  1898.    acc:=acc+1; if acc>20 then acc:=20;
  1899.    pow:=pow+1;
  1900.    Status;
  1901.    end;
  1902.  
  1903.    if ch='?' then begin
  1904.    score:=scorealt+(level*100);
  1905.    scorealt:=score;
  1906.    level:=level+1;
  1907.    Status;
  1908.    end;
  1909.  
  1910.    if (ch='1') OR (ch='2') OR (ch='3') OR (ch='4') OR (ch='6')
  1911.                OR (ch='7') OR (ch='8') OR (ch='9') then Move_Cross;
  1912.   Alien_Dead;
  1913.   Hero_Dead;
  1914.   until (Dead='hero') or (Dead='alien');
  1915.   If Dead='hero' then GAMEOVER;
  1916.   If Dead='alien' then Killed;
  1917. until 1=0;
  1918. END;
  1919.  
  1920.  
  1921.  
  1922. PROCEDURE Spiel;
  1923. BEGIN
  1924. randomize;
  1925. textbackground(0);
  1926. window(1,1,80,25);
  1927. clrscr;
  1928. delay(1000);
  1929. Intro;
  1930. Init_Hero;
  1931. Status;
  1932. Init_Crosswire;
  1933. Start_Game;
  1934. END;
  1935.  
  1936. BEGIN
  1937. Spiel;
  1938. END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement