home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / dossys / moves / mover2.pas next >
Encoding:
Pascal/Delphi Source File  |  1988-06-03  |  3.0 KB  |  164 lines

  1. program movetester;
  2.  
  3. var
  4.   d:char;
  5.   x1,
  6.   y1,
  7.   x2,
  8.   y2,
  9.   x3,
  10.   y3,
  11.   x4,
  12.   y4,
  13.   score:integer;
  14.  
  15. label
  16.   1;
  17.  
  18. begin
  19.   score:=0;
  20.   x4:=10;y4:=23;
  21.   x2:=5;y2:=5;
  22.   x1:=40;y1:=12;
  23.   x3:=60;y3:=24;
  24.   1:
  25.   clrscr;
  26.   gotoxy(70,25);
  27.   write('Score: ',score);
  28.   gotoxy(1,1);
  29.   writeln('Press ''Q'' to quit');
  30.   gotoxy(x1,y1);
  31.   write('O');
  32.   gotoxy(x2,y2);
  33.   write('X');
  34.   gotoxy(x3,y3);
  35.   write('X');
  36.   gotoxy(x4,y4);
  37.   write('X');
  38.   read(kbd,d);
  39.   if (d = 'q') or (d = 'Q') then halt;
  40.   if (d = #27) and keypressed then
  41.    begin
  42.     read(kbd,d);
  43.     case d of
  44.        #72: y1:=y1-2;
  45.        #80: y1:=y1+2;
  46.        #75: x1:=x1-2;
  47.        #77: x1:=x1+2;
  48.        #71: begin
  49.              x1:=x1-1;
  50.              y1:=y1-1;
  51.             end;
  52.        #79: begin
  53.              x1:=x1-1;
  54.              y1:=y1+1;
  55.             end;
  56.        #73: begin
  57.              x1:=x1+1;
  58.              y1:=y1-1;
  59.             end;
  60.        #81: begin
  61.              x1:=x1+1;
  62.              y1:=y1+1;
  63.             end;
  64.  
  65.        else begin
  66.           sound(700);
  67.           delay(400);
  68.           nosound;
  69.           end;
  70.       end;
  71.   end;
  72.   if x1 < 1 then
  73.    begin
  74.     x1:=1;
  75.     sound(500);
  76.     delay(500);
  77.     nosound;
  78.    end;
  79.   if x1 > 79 then
  80.    begin
  81.     x1:=79;
  82.     sound(500);
  83.     delay(500);
  84.     nosound;
  85.    end;
  86.   if y1 < 1 then
  87.    begin
  88.     y1:=1;
  89.     sound(500);
  90.     delay(500);
  91.     nosound;
  92.    end;
  93.   if y1 > 25 then
  94.    begin
  95.     y1:=25;
  96.     sound(500);
  97.     delay(500);
  98.     nosound;
  99.    end;
  100.   if x2 < x1 then x2:=x2+1;
  101.   if x2 > x1 then x2:=x2-1;
  102.   if y2 < y1 then y2:=y2+1;
  103.   if y2 > y1 then y2:=y2-1;
  104.   if x3 < x1 then x3:=x3+1;
  105.   if x3 > x1 then x3:=x3-1;
  106.   if y3 < y1 then y3:=y3+1;
  107.   if y3 > y1 then y3:=y3-1;
  108.   if x4 < x1 then x4:=x4+1;
  109.   if x4 > x1 then x4:=x4-1;
  110.   if y4 < y1 then y4:=y4+1;
  111.   if y4 > y1 then y4:=y4-1;
  112.  
  113.   if x2=x3 then
  114.    begin
  115.     if y2=y3 then begin x2:=x2-1;y2:=y2-1;end;
  116.    end;
  117.   if x2=x4 then
  118.    begin
  119.     if y2=y4 then begin
  120.      x2:=x2-1;
  121.      y2:=y2-1;
  122.      end;
  123.     end;
  124.   if x3=x4 then
  125.    begin
  126.     if y3=y4 then
  127.      begin
  128.       y4:=y4-1;
  129.       x4:=x4-1;
  130.      end;
  131.    end;
  132.  
  133.   if x2=x1 then begin
  134.                  if y2=y1 then
  135.                   begin
  136.                    gotoxy(x1-1,y1-1);
  137.                    write('Gotcha!!');
  138.                    delay(750);
  139.                    halt;
  140.                   end;
  141.                 end;
  142.   if x3=x1 then begin
  143.                  if y3=y1 then
  144.                   begin
  145.                    gotoxy(x1-1,y1-1);
  146.                    write('Gotcha!!');
  147.                    delay(750);
  148.                    halt;
  149.                   end;
  150.                  end;
  151.   if x4=x1 then begin
  152.                  if y4=y1 then
  153.                   begin
  154.                    gotoxy(x1-1,y1-1);
  155.                    write('Gotcha!!');
  156.                    delay(750);
  157.                    halt;
  158.                   end;
  159.                 end;
  160.  
  161.   score:=Score+1;
  162.   goto 1;
  163. end.
  164.