Программа не работает...


#1

program KeyGame;{P-Пустая клетка; #-Запертая решётка; @-Выход; &-Ключ; ^>V<-Шипы(вверх вправо вниз влево); *-Стена; $-Магазин; /-Зеркала; H-Герой; O-Камень; -|-транспорт; %-Динамит} var a,d:array [0…100] of string; b,i,j,l:integer; t:text; g,p,k:string; X,H,E:boolean;

begin writeln(‘1.Play’); writeln(‘2.Level Editor (Do not work)’); readln(b);

case b of

1:begin writeln(‘Choose level:’); writeln(‘1.Level1’); writeln(‘1.Level2’); writeln(‘1.Level3’); writeln(‘1.Level4’); writeln(‘1.Level5’); readln(b);

case b of 1:begin assign(t, ‘C:\PABCWork.NET\MyPrograms\Games\KeyGame\Level1.txt’); reset(t); for i:=2 to 100 do begin readln(t,a[i]); if a[i]=p then break; end; close(t); end; end;

for i:=1 to 100 do d[i]:=a[i];

for i:=1 to 100 do begin g:=d[i]; l:=length(g);

for j:=1 to l do begin if g[j]=‘P’ then g[j]:=’ ‘; if g[j]=’-’ then g[j]:=‘▬’; if g[j]=’|’ then g[j]:=‘│’; if g[j]=‘V’ then g[j]:=‘▼’; if g[j]=’^’ then g[j]:=‘▲’; if g[j]=’<’ then g[j]:=‘◄’; if g[j]=’>’ then g[j]:=‘►’; if g[j]=’*’ then g[j]:=‘▓’; if g[j]=‘H’ then g[j]:=‘:slight_smile:’; end;

d[i]:=g; end;

for i:=1 to 100 do begin if d[i]<>p then writeln(d[i]); end;

for i:=1 to 100 do begin if a[i]<>p then writeln(a[i]); end;

H:=True; E:=True;

while (H=True) or (E=True) do begin; X:=True; b:=0;

while not(((b<10) and (b>0)) or ((b<60) and (b>50))) and (b mod 2=0) do begin writeln(‘Move:’); writeln(‘8-up, 2-down, 4-left, 6-right’); writeln(‘Fire:’); writeln(‘58-up, 52-down, 54-left, 56-right’); readln(b); end;

case b of

2:begin

for i:=1 to 100 do begin g:=a[i]; for j:=1 to length(g) do if g[j]=‘H’ then break; writeln(‘x=’,j,’ y=’,i); if g[j]=‘H’ then break; end;

end;

4:begin

end;

6:begin

end;

8:begin

end;

52:begin

end;

54:begin

end;

56:begin

end;

58:begin

end;

end;

end;

end;

end;

end.

Вот в этой части ошибка: begin

for i:=1 to 100 do begin

g:=a[i];

for j:=1 to length(g) do if g[j]=‘H’ then break;

if g[j]=‘H’ then break; <- индекс находился вне границ массива.

end;

writeln(‘x=’,j,’ y=’,i);

end.

Ввод:

1

1

2

Вывод (должен быть):

х=2, у=2.

Информация из текстового документа:

DDDDDDDDDD

DHPPPPPP&D

DPPPPPPPPD

DPPPPPPPPD

DPPPPPPPPD

DPPPPPPPPD

DPPPPPPPPD

DPPPPPPD#D

DPPPPPPD@D

DDDDDDDDDD

Вместо “D” стоят “*”.

Можно ли Pascal связать с калькулятором? Я попытался, он занёс в калькулятор пример, но в ответ написал мне обратно мой пример.


#2

Пожалуйста, сделайте так, чтобы Ваша программа компилировалась, а потом поправьте свой код.


#3

И выделите код так:

```
код
```

Иначе это нечитабельно.