0% found this document useful (0 votes)
24 views

Pemhhhhrog

The document describes a snake game program written in Pascal, including procedures for moving and feeding the snake, updating its position on the screen, checking for collisions, and resetting the game. It defines variables to track the snake's segments, position, score, and whether it is alive or dead, and contains the main logic to control movement with keys, place food randomly, and end the game if the snake dies.

Uploaded by

Darrell Rassya
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Pemhhhhrog

The document describes a snake game program written in Pascal, including procedures for moving and feeding the snake, updating its position on the screen, checking for collisions, and resetting the game. It defines variables to track the snake's segments, position, score, and whether it is alive or dead, and contains the main logic to control movement with keys, place food randomly, and end the game if the snake dies.

Uploaded by

Darrell Rassya
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 1

uses crt;label habis, lanjut;const max_panjang = 100; batas_x = 80; batas_y =

25; speed = 200;type tempat = record x, y : integer; end;var ekor :


array[1..max_panjang] of tempat; ujung, makanan : tempat; tkn : char;
i,pjg,skor,spd : integer; mati : boolean;procedure atur_posisi;begin ujung.x :=
ekor[pjg].x; ujung.y := ekor[pjg].y; for i:=pjg downto 2 do begin ekor[i].x :=
ekor[i-1].x; ekor[i].y := ekor[i-1].y; end; gotoxy(ekor[2].x, ekor[2].y);
write('@'); gotoxy(ekor[3].x, ekor[3].y); write('&'); gotoxy(ekor[pjg-1].x,
ekor[pjg-1].y); write('#'); gotoxy(ujung.x, ujung.y); write(' '); for i:=3 to pjg
do if((ekor[2].x=ekor[i].x) and (ekor[2].y=ekor[i].y)) then mati:=true;
delay(speed-spd);end;procedure makan;var beda : boolean;begin inc(skor,5);
gotoxy(10,26); write('Skor = ',skor); repeat beda := true; makanan.x :=
random(batas_x-2)+2; makanan.y := random(batas_y-2)+2; for i:=1 to pjg do
if((makanan.x=ekor[i].x) and (makanan.y=ekor[i].y)) then beda:=false; until beda;
gotoxy(makanan.x, makanan.y); write('o'); inc(pjg); inc(spd,2);end;procedure
bergerak(c : char);begin if c = 'd' then begin repeat if((ekor[1].x =
makanan.x) and (ekor[1].y = makanan.y)) then makan; ekor[1].x := ekor[1].x+1;
atur_posisi; if (ekor[1].x = batas_x) or (ekor[1].y = batas_y) or (ekor[1].x =
1) or (ekor[1].y = 1) then mati := true; until keypressed or mati; if mati
then exit; tkn:=readkey; if tkn = 'a' then tkn:='d'; end else if c = 's'
then begin repeat if((ekor[1].x = makanan.x) and (ekor[1].y = makanan.y))
then makan; ekor[1].y := ekor[1].y+1; atur_posisi; if (ekor[1].x =
batas_x) or (ekor[1].y = batas_y) or (ekor[1].x = 1) or (ekor[1].y = 1) then
mati := true; until keypressed or mati; if mati then exit; tkn:=readkey;
if tkn = 'w' then tkn:='s'; end else if c = 'w' then begin repeat
if((ekor[1].x = makanan.x) and (ekor[1].y = makanan.y)) then makan;
ekor[1].y := ekor[1].y-1; atur_posisi; if (ekor[1].x = batas_x) or
(ekor[1].y = batas_y) or (ekor[1].x = 1) or (ekor[1].y = 1) then mati := true;
until keypressed or mati; if mati then exit; tkn:=readkey; if tkn = 's'
then tkn:='w'; end else if c = 'a' then begin repeat if((ekor[1].x =
makanan.x) and (ekor[1].y = makanan.y)) then makan; ekor[1].x := ekor[1].x-1;
atur_posisi; if (ekor[1].x = batas_x) or (ekor[1].y = batas_y) or (ekor[1].x =
1) or (ekor[1].y = 1) then mati := true; until keypressed or mati; if mati
then exit; tkn:=readkey; if tkn = 'd' then tkn:='a'; end;end;begin
tkn:='d'; mati := false; randomize; pjg := 10; spd := 0; makanan.x :=
random(batas_x-2)+2; makanan.y := random(batas_y-2)+2; ekor[1].x := 40;
ekor[1].y := 3; for i:=2 to pjg do begin ekor[i].x := ekor[i-1].x; ekor[i].y
:= 3; end;lanjut: clrscr; gotoxy(10,26); write('Skor = ',skor); for i:=1 to 80
do begin gotoxy(i,1); write('-'); gotoxy(i,25); write('-'); end; for i:=2
to 24 do begin gotoxy(1,i); write('|'); gotoxy(80,i); write('|'); end; for
i:=1 to pjg do begin gotoxy(ekor[i].x, ekor[i].y); write('&'); end;
gotoxy(makanan.x, makanan.y); write('o'); repeat if((tkn='w') or (tkn='a') or
(tkn='s') or (tkn='d')) then bergerak(tkn) else begin repeat
gotoxy(20,10); write(' Lagi Galau..??'); gotoxy(20,11); write('
..Paused Game..'); repeat gotoxy(20,13); write('..Press w, a, s or
d to lanjut..'); delay(200); gotoxy(20,13); write('
'); delay(200); until keypressed; tkn:=readkey; until((tkn='w') or
(tkn='a') or (tkn='s') or (tkn='d')); goto lanjut; end; if mati then goto
habis; until (tkn = #27) or mati;habis: gotoxy(20,10); write(' yahahah
kalah..??'); gotoxy(20,11); write(' ..Main ep ep aj..'); gotoxy(20,12); write('
..wkwkwkwkwk..'); readln;end.

You might also like