Witam.Robię taką małą,prostą gierke.Napisałem kod,ok wszystko działa.Ale w grze chodzi o poruszanie się gwiazdką w labiryncie.Żeby dodać labirynt itd nie ma sprawy.Problem z tym żeby gwiazdka nie mogła przejść przez ścianki labiryntu.Pomóżcie!
uses Crt;
var znak:char;
x,y : byte;
procedure a (dx, dy : integer); {procedura do poruszania gwiazką tz. gdzie możę iść a gdzie nie}
begin
if (x+dx>=1) and (x+dx<=80) and
(y+dy>=1) and (y+dy<=24) then
begin
gotoxy(x, y); write(' ');
x:=x+dx; y:=y+dy;
gotoxy(x, y); textcolor(lightgreen); write('*');
end;
else
begin
end
end;
begin
clrscr;
gotoxy(1, 25);
textcolor(yellow);
write('Sterujesz w,s,a,d,q,e,z,c.Jeli skoäczye zabaw© nacinij p.');
gotoxy(50, 13);
write('|');
x:=40; y:=12;
a (0, 0);
repeat
znak:=readkey;
case Upcase(znak) of
'W': a (0, -1);
'S': a (0, 1);
'A': a (-1, 0);
'D': a (1, 0);
'E': a (1, -1);
'Q': a (-1, -1);
'Z': a (-1, 1);
'C': a (1, 1);
else
begin
end;
end;
until Upcase(znak)='P';
end.
Próbowałem dodać w proceurze a to:
uses Crt;
var znak:char;
x,y : byte;
procedure a (dx, dy : integer);
begin
if (x+dx>=1) and (x+dx<=80) and
(y+dy>=1) and (y+dy<=24) and
(x+dx<>50) and (y+dy<>13) then
begin
gotoxy(x, y); write(' ');
x:=x+dx; y:=y+dy;
gotoxy(x, y); textcolor(lightgreen); write('*');
end;
else
begin
end
end;
begin
clrscr;
gotoxy(1, 25);
textcolor(yellow);
write('Sterujesz w,s,a,d,q,e,z,c.Jeli skoäczye zabaw© nacinij p.');
gotoxy(50, 13);
write('|');
x:=40; y:=12;
a (0, 0);
repeat
znak:=readkey;
case Upcase(znak) of
'W': a (0, -1);
'S': a (0, 1);
'A': a (-1, 0);
'D': a (1, 0);
'E': a (1, -1);
'Q': a (-1, -1);
'Z': a (-1, 1);
'C': a (1, 1);
else
begin
end;
end;
until Upcase(znak)='P';
end.
A przy okazji mam jeszcze takie pytanie.Zrobiłem tak żeby trzeba było zjadać inne gwiazdki.Spoko działa.ALE jak zrobić,że jak się zje ostatnią na ekranie to wczytuje następny lev?
Ustalasz ile gwiazdek jest na mapie, potem gdy zjadasz jakaś gwiazdkę to odejmujesz od ilości gwiazdek na mapie, jeśli liczba gwiazdek na mapie == 0, kończysz pętle programu i wczytujesz kolejny level 
A gwiazdki mają być rozmieszczane losowo 

