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]:=‘’; 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 связать с калькулятором? Я попытался, он занёс в калькулятор пример, но в ответ написал мне обратно мой пример.