Browse Subversion Repository
Diff of /Unit1.pas
Parent Directory
| Revision Log
| Patch
| 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; |
| 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]); |
| 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; |
| 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 |
|
|
| |