我的Pascal代码有问题。 有一些错误,我不知道在哪里。
program GTA6;
uses
Crt;
var
obraz, x, mampistoli, mamnuz: Integer;
begin
clrscr;
randomize;
obraz := 1;
repeat
clrscr;
if obraz = 1 then
begin
writeln('Je 9:00 rano. Probudis se ve svem byte. Nekdo ti zvoni na dvere. Pujdes otevrit(2) nebo budes zvonek ignorovat(3)?');
readln(obraz);
if (obraz <> 2) and (obraz <> 3) then
obraz := 1;
end
else
if obraz = 2 then
begin
writeln('Otevres dvere a jsou tam dva dvoumetrovy plesaty chlapi s pistolema v ruce. Prej dluzis jejich sefoj 200 000 Kc a chce je vratit do 19:00 jinak te prijdou zabit.');
writeln(' Sahnout po pistoli(4), nedelat nic (5)');
readln(obraz);
if (obraz <> 2) and (obraz <> 3) and (obraz <> 4) and (obraz<> 5) then
obraz := 2;
end
else
if obraz = 5 then
begin
if mampistoli <> 1 then
begin
writeln('Odesli. Ty zjistis, ze nemas 200 000.');
writeln('vzit si pistoli(1), nebo si vzit nuz(2)');
readln(x);
if x = 1 then
mampistoli := 1;
if x = 2 then
mamnuz := 1;
end;
writeln('Takhle narychlo tolik penez nesezenes...budes muset udelat banku, nebo tak neco.');
writeln('Vyloupit banku (6), trafiku (7), vykr st auto (8)');
readln(obraz);
if (obraz <> 6) and (obraz <> 7) and (obraz <> 8) then
obraz := 5;
end
else
if obraz = 6 then
begin
if mampistoli = 1 then
begin
writeln('Rozhodl jsi se vyloupit banku s pistoli.');
writeln('Hlidac videl tvoji zbran a vystrelil po tobe!');
x := random(100);
if x < 50 then
writeln('Trefil te primo do hlavy!');
writeln('Zemrel jsi!');
obraz := 0;
end;
until obraz = 0;
writeln('KONEC HRY');
if x > 50 then
writeln('Netrefil se!');
readln;
end.
哪里有问题?
答案 0 :(得分:0)
在end;
声明之前添加until
。
答案 1 :(得分:0)
您遗失了end;
个语句之一的if
。
这两个if
语句从代码块开始:
end else if obraz=6 then begin
if mampistoli=1 then begin
但只有一个end;
来结束它们。
如果您仔细缩进代码,则更容易发现此类问题。
答案 2 :(得分:0)
repeat
...
end else if obraz=6 then
begin
if mampistoli=1 then
begin
writeln('Rozhodl jsi se vyloupit banku s pistoli.');
writeln('Hlidac videl tvoji zbran a vystrelil po tobe!');
x:=random(100);
if x< 50 then writeln('Trefil te primo do hlavy!');
writeln('Zemrel jsi!');
obraz:=0;
end;
END; <---
until obraz=0;