pointer pada pascal dan C++ dan game ular pada pascal

Di Posting Oleh : Blogger Bodoh (Fajerin Biabdillah)
Kategori :



Listing program pointer pada pascal dan C++
1.      Program  pada pascal
Listing string pascal
Program set2;
uses crt;
type karakter= set of char;
var kapital : karakter;
hidup : karakter;
jumlahh,jumlahk : integer;
kalimat : string;
i:integer;
begin
clrscr;
kapital:=['A'..'Z'];
hidup:=['A','E','I','O','U','a','e','i','o','u'];
jumlahh:=0;
jumlahk:=0;
writeln('Masukkan suatu kalimat : ');
read(kalimat);
for I:=1 to length(kalimat) do
begin
if kalimat[i] in kapital then inc(jumlahk);
if kalimat[i] in hidup then inc(jumlahh);
end;
writeln('Jumlah kapital = ',jumlahk);
writeln('Jumlah huruf hidup = ',jumlahh);
readkey;
end.



Input program

           

Logika
                        Setelah program selesai dibuat kemudiaan berjalan, program ini akan memanggil library dengan tipe data adalah variable capital sebagai karakter,hidup sebagai karakter,jumlah adalah sebagai intger, dan kalimat sebagai string. Dimana program akan  membaca huruf capital,jumalh huruf kaptal, kita diminta menuliskan kalimat yang kita mau.
Output program
Listing program pointer pascal
                        program deklarasi;
uses crt;
var p : ^integer;
nilai : integer;
begin
clrscr;
nilai:=32;
p:=@nilai;
writeln(p^);
p^:=130;
writeln(p^);
writeln(nilai);
readln;
end.




Input program

Logika program

            Pointer merupakan variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam memory. Suatu variabel yang points(menunjuk) ke sesuatu sehingga disebut pointer. Setelah  selesai program dibuat kemudian, program kan bejalan dan memanggil tipe data dalam bentuk variable p adalah sebagai pointer integer, dan nlai adalah sebagai integer. Program kan melakukan deklerasi dimana nilai adalah sama dengan 32, dan pointer adalah sama dengan 130, dan pointer akan membaca nilai integer itu, begitulah logikanya. Program selesai.
 
Output program


2.      Program pointer pada C++
Listing program
#include <iostream.h>
      int main()
       {
       int *a;
       int b=10;
       a=&b;

      cout<<"alamat a : "<<a<<endl;
       cout<<"nilai b : "<<b<<endl;
       cout<<"nilai a : "<<*a<<endl;

      return 0;
       }


Input program

Logika program
 Program akan memulai dengan tipe data dalam bentuk integer a adalah sebgai pointer dan intger b nilainya sama dengan 10. Kemudian pointer a kan mengcopi nilai b. dan program akan menampilkan nilaia dan nilai b. dan hasil copiannya harus didahului dengan tanda*.  begitulah logika programnya.

Output program



Listing program pointer C++
#include <iostream.h>
  #include <conio.h>
  #include <stdio.h>

  void main()
  {
        char kata[100];
        char *balik;
        int i,jumlah;

        jumlah=0;
        balik=kata;
        char x;
                  do
                  {
                              cout<<"\t ===---------------**--------------=== \n\n";
                              cout <<"\t Masukkan kata : ";
                              gets(kata);
                                                       for(i=0;kata[i]!='\0';i++)
{jumlah ++;}
                              cout<<"\n\t ===---------------**--------------=== \n\n";
                              cout << "\t Setelah Pembalikan Kata :";
                                                       for(i=jumlah-1;i>=0;i--)
  {cout << *(balik + i);}
                              cout<<"\n\n\t ===---------------**--------------=== \n\n";
                              cout<<"\n\t Tekan y untuk mengulang = ";
                              cin>>x;
                   } while ((x=='y') || (x=='Y'));
                  getch();
        }

Input program

Logika program
Setelah program selesai dibuat maka program berjalan dan memanggil libarary dengan tipe data dalam bentuk char kata[100] dan pointer char balik. I, jumlah adalah sebagai integer, dimana jumlah adalah sama dengan =0. Balik sama dengan kata, char x
Kemudian program melakukan proses pengulangan dengan rumus do while, selnjutnya kita diminta memasukkan kata yang kita mau”…”. Dan program membaca kalimat dari awal dan setelah itu program membaca pointer balik dari belakang. Pointer balik disini berfungsi membaca kata yang kita masukan tadi. Program selesai..




Output program






Game pada pascal

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.

Penjelasan
 Program ini akan bergerak dengan menekan tombol w,a,s,d, sebagai penun juk arah ular. Program akan berkahir jika ular mencapai panjang 100,dengan kecepatan 200 delay, dengan tipe data x dan y.  jika ular gagal maka akan muncul kalimat “lagi galau, paramex obatnya, wkwkwkwk, dank an muncul tampilan huruf W,A,S,D, unutk lanjut atau berhenti. Sekiranya itulah jalannya program game ini secara sederhananya.


0 Response to "pointer pada pascal dan C++ dan game ular pada pascal"

Post a Comment