jolajolanta
Nowy
Dołączył: 10 Gru 2012
Posty: 1
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Pon 10:13, 10 Gru 2012 Temat postu: sssnaaake- problemu |
|
|
Witam, mam problemy ze zrobieniem snake. otóż, mam zrobioną tablice, rozrzucone jedzonko, samego węża, który zjada to jedzenie. musze do programu dodać menu, poziomy trudnośći, punky bonusowe i plansze. nie wiem jak się za to zabrac. pomocy!
Oto mój program:
uses wincrt,graph;
var a,b:smallint;
dw,wazx,wazy,i,ilex,iley,jedzonko_x,jedzonko_y:integer;
c:char;
jedzonko:array[1..30,1..2]of integer;
waz:array[1..31,1..2]of integer;
//informacje
begin
detectgraph(a,b);
initgraph(a,b,'');
setbkcolor(WHITE);
cleardevice();
ilex:=getmaxx div 20;
iley:=getmaxy div 20;
setfillstyle(1,1);
//górna i dolna ścianka
for i:=0 to ilex do begin
bar(20*i,40,20*i+20,60);
bar(20*i,(iley-1)*20,20*i+20,iley*20);
end;
//lewa i prawa ścianka
for i:=2 to iley-1 do begin
bar(0,i*20,20,i*20+20);
bar(ilex*20,i*20,ilex*20+20,i*20+20);
end;
//losujemy jedzonko
randomize;
setfillstyle(1,5);
for i:=1 to 30 do begin
jedzonko_x:=random(ilex-2)+1;
jedzonko_y:=random(iley-4)+3;
jedzonko[i][1]:=jedzonko_x;
jedzonko[i][2]:=jedzonko_y;
bar(jedzonko[i][1]*20,jedzonko[i][2]*20,jedzonko[i][1]*20+20,jedzonko[i][2]*20+20);
end;
//rysujemy weza
dw:=1;
wazx:=ilex div 2;
wazy:=iley div 2;
waz[1][1]:=wazx;
waz[1][2]:=wazy;
setfillstyle(1,RED);
repeat
if(keypressed) then c:=readkey;
if (c='w') then wazy:=wazy-1;
if (c='a') then wazx:=wazx-1;
if (c='d') then wazx:=wazx+1;
if (c='s') then wazy:=wazy+1;
//zamazujemy ogon
setfillstyle(1,WHITE);
bar(waz[dw][1]*20,waz[dw][2]*20,waz[dw][1]*20+20,waz[dw][2]*20+20);
//ruch weza w tablicy
for i:=dw downto 2 do begin
waz[i][1]:=waz[i-1][1];
waz[i][2]:=waz[i-1][2];
end;
waz[1][1]:=wazx;
waz[1][2]:=wazy;
//rysowanie weza
setfillstyle(1,RED);
for i:=1 to dw do
bar(waz[i][1]*20,waz[i][2]*20,waz[i][1]*20+20,waz[i][2]*20+20);
//waz je
for i:=1 to 30 do begin
if ((waz[1][1]=jedzonko[i][1])AND(waz[1][2]=jedzonko[i][2])) then begin
dw:=dw+1;
jedzonko[i][1]:=-1;
jedzonko[i][2]:=-1;
end;
end;
//kolizje
if((wazx<1) or (wazx>ilex) or (wazy<3) or (wazy>iley-1)) then c:='x';
delay(100);
until c='x';
closegraph;
end.
Post został pochwalony 0 razy
|
|