Facebook
From Bulky Hog, 9 Years ago, written in Pascal.
Embed
Download Paste or View Raw
Hits: 676
  1. function checkMove(key1:char):boolean;
  2. begin
  3.    if key1=#0 then begin
  4.    case key1 of
  5.       chr(75):
  6.       begin
  7.         if pile[pacY][pacX-1].isitwall=false then checkmove:=true else checkmove:=false;
  8.       end;
  9.       chr(77):
  10.       begin
  11.         if pile[pacY][pacX+1].isitwall=false then checkmove:=true else checkmove:=false;
  12.       end;
  13.       chr(72):
  14.       begin
  15.         if pile[pacY-1][pacX].isitwall=false then checkmove:=true else checkmove:=false;
  16.       end;
  17.       chr(80):
  18.       begin
  19.         if pile[pacY+1][pacX].isitwall=false then checkmove:=true else checkmove:=false;
  20.       end;
  21.     end;
  22.    end;
  23. end;
  24.  
  25.  
  26.  
  27. function readInput():char;
  28. begin
  29.   if keypressed then key:=readkey;
  30.   begin
  31.     if key=#0 then begin
  32.     if checkmove(key)=true then key:=readkey
  33.     else key:=previouskey;
  34.     end;
  35.     case key of
  36.       chr(75):
  37.       begin
  38.         if pile[pacY][pacX-1].isitwall=false then
  39.         begin
  40.           readInput:='a';  // lewo
  41.           pacX:=pacX-1;
  42.  
  43.         end;
  44.       end;
  45.       chr(77):
  46.       begin
  47.         if pile[pacY][pacX+1].isitwall=false then
  48.         begin
  49.           readInput:='d';
  50.           pacX:=pacX+1; // prawo
  51.  
  52.         end else readinput:=previouskey;
  53.       end;
  54.       chr(72):
  55.       begin
  56.         if pile[pacY-1][pacX].isitwall=false then
  57.         begin
  58.           readInput:='w';      //gora
  59.           pacY:=pacY-1;
  60.         end;
  61.       end;
  62.       chr(80):
  63.       begin
  64.         if pile[pacY+1][pacX].isitwall=false then
  65.         begin
  66.           readInput:='s';        //dol
  67.           pacY:=pacY+1;
  68.  
  69.         end;
  70.       end;
  71.     end;
  72.   end;
  73.   writeln(key,' ',previouskey);
  74.   previouskey:=key;
  75. end;