Develop and Download Open Source Software

Browse Subversion Repository

Diff of /Unit1.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2 by yamat0jp, Mon Oct 5 22:59:32 2015 UTC revision 3 by yamat0jp, Tue Oct 6 00:25:26 2015 UTC
# Line 28  type Line 28  type
28      Visible: Boolean;      Visible: Boolean;
29      constructor Create;      constructor Create;
30      procedure Walk(var p, q: integer); override;      procedure Walk(var p, q: integer); override;
31      procedure Wall; override;      procedure Wall; overload; override;
32      procedure Clear; override;      procedure Clear; override;
33      procedure RunAway(out p, q: integer);      procedure RunAway(out p, q: integer);
34    end;    end;
# Line 113  begin Line 113  begin
113    setint(6, [1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1]);    setint(6, [1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1]);
114    setint(7, [1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1]);    setint(7, [1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1]);
115    setint(8, [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1]);    setint(8, [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1]);
116    setint(9, [1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1]);    setint(9, [1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1]);
117    setint(10, [1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1]);    setint(10, [1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1]);
118    setint(11, [1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1]);    setint(11, [1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1]);
119    setint(12, [1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);    setint(12, [1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1]);
120    setint(13, [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);    setint(13, [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1]);
121    setint(14, [1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);    setint(14, [1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1]);
122    setint(15, [1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);    setint(15, [1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1]);
123    setint(16, [1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);    setint(16, [1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1]);
124    setint(17, [1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1]);    setint(17, [1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1]);
125    setint(18, [1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);    setint(18, [1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
126    setint(19, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);    setint(19, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);
# Line 266  begin Line 266  begin
266      s := List[i];      s := List[i];
267      if (Char.X = s.X) and (Char.Y = s.Y) then      if (Char.X = s.X) and (Char.Y = s.Y) then
268        if Action = true then        if Action = true then
269          (s as TEnemy).Visible := false          with s as TEnemy do
270            begin
271              Visible := false;
272              Count:=20;
273            end
274        else        else
275        begin        begin
276          Start;          Start;
# Line 310  var Line 314  var
314    i, p, q: integer;    i, p, q: integer;
315    s: TChar;    s: TChar;
316  begin  begin
317    for i := 0 to List.Count-1 do    Char.Walk(p, q);
318      if Map[p,q] in [0, 9, 10] then
319      begin
320        Char.X := p;
321        Char.Y := q;
322        if Map[p, q] = 9 then
323          Action := true;
324        Map[p, q] := 10;
325        GameOver;
326      end
327      else
328        Char.Wall;
329      for i := 0 to List.Count - 1 do
330    begin    begin
331      s := List[i];      s := List[i];
332      if (s = Char) or ((s as TEnemy).Visible = true) then      if s = Char then
333          continue;
334        if (s as TEnemy).Visible = true then
335      begin      begin
336        if s = Char then        if Action = false then
         s.Walk(p, q)  
       else  
337        begin        begin
338          if Action = false then          p := Char.X;
339          begin          q := Char.Y;
340            p := Char.X;          (s as TEnemy).RunAway(p, q);
           q := Char.Y;  
           (s as TEnemy).RunAway(p, q);  
         end;  
         s.Walk(p, q);  
341        end;        end;
342        if Map[p, q] in [0, 9, 10] then        s.Walk(p, q);
343          if Map[p, q] <> 1 then
344        begin        begin
345          s.X := p;          s.X := p;
346          s.Y := q;          s.Y := q;
         if s = Char then  
         begin  
           if Map[p, q] = 9 then  
             Action := true;  
           Map[p, q] := 10;  
           GameOver;  
         end;  
347        end        end
348        else        else
349          s.Wall;          s.Wall;

Legend:
Removed from v.2  
changed lines
  Added in v.3

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26