Rabu, 16 Mei 2012

Contoh game snake dari pascal

Contoh Game Snake dari Pascal               


    Game jaman dulu yang pernah popule ini kini menjadi sebuah pembelajaran bagi kita semua yang baru memasuki dunia komputer, berikut adalah salah satu dari sekian banyak game jadul yang masih ingin kita ulas cara membuatnya,

    Berikut ini adalah contoh game snake buatan saya yang sangat jelek dan tidak pernah masuk dalam sejarah,, hehehehehehehe..

    hanya untuk sekedar berbagi pengetahuan, dan sebagai pembelajaran bagi kita semua yang baru memasuki dunia komputer, berikut ini adalah tampilan game buatan saya yang sangat jelek, maklum yg buat game-nya lagi GALAU, hehehehehehe..


 Gambar 1 - Ular galau lagi cari makan



Gambar 2 - Ular galau lagi istirahat



Gambar 3 - Ular galau bunih diri


    
    Nah, itu adalah tampilan game snake pascal versi saya, hehehehehehehe,,
bagi anda2 yang berminat untuk membelinya silahkan menghubungi kepala RT/RW setempat, wkwkwkwk,, bagi pengguna ideone silahkan buka klik disini untuk listingnya.  Bagi anda yang mau memainkannya mendonload listing programnya, silahkan klik DISINI weee..

    Berikut ini adalah kode program untuk meghasilkan game Galau Snake,

--------------------------------------------------------------
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('    Lagi Galau..??');
  gotoxy(20,11); write(' ..Paramex obatnya..');
  gotoxy(20,12); write('   ..wkwkwkwkwk..');
  readln;
end.

--------------------------------------------------------------

    Sekian contoh game Galau Snake dari pascal versi saya, semoga listing program diatas tidak membuat saudara-saurada sekalian bertambah GALAU, hehehehehehe,,

                                      -=- PISS, METAL and LOVE =-                                       
                                    -=- I LOVE YOU -=-


Nb :
   bila ada yang kurang berkenan dihati alias ada pertanyaan yang membuat saudara-saudara sekalian GALAU, silahkan kontak facebook saya https://www.facebook.com/basri.yasin

5 komentar: