Minggu, 27 Januari 2013

Program Game


Mengenal Siie TETRIS
Hayoo siapa yang tak kenal sama game satu ini ??  itu siie TETRIS. . Semua orang di dunia pasti sudah mengenal game ini.  Game yang berbasis brain game ini adalah game kuno yang sangat mengasyikan sebab dalam game ini, kita harus bisa menyusun beberapa jumlah susunan balok yang dapat diubah-ubah agar bisa saling mengunci dan kemudian mendapat nilai untuk dapat naik ke level berikutnya. TETRIS adalah permainan teka-teki bangunan yang pertama kalinya di desain oleh Alexey Pajitnov  pada bulan Juni 1985.

Algoritma game tetris
Permainan tetris ini menggunakan pendekatan algoritma greedy dan brute force. Algoritma Greedy memecahkan masalah langkah per langkah, pertama algoritma ini akan mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan. Algoritma Greedy mengacu kepada prinsip “take what you can get now. .!lalu berharap bahwa dengan memilih optimum local pada setiap langkah akan berakhir dengan optimum global. Sedangkan Algoritma Brute Force adalah sebuah pendekatan yang sesuai (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan. Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way).
Algoritma yang digunakan untuk mendapatkan susunan tumpukan balok yang paling baik dengan menempatkan balok ke tempat yang tepat. Dalam mencari langkah solusi yang paling menguntungkan digunakan algoritma dengan prinsip Greedy.
Prioritas keuntungan yang tersusun terdiri dari :
1. Membentuk satu atau lebih baris paling penuh.
2. Membentuk satu atau lebih baris paling mendekati penuh.
3. Tidak membentuk ruang kosong pada susunan tumpukan balok.
4. Balok dapat masuk ke dalam susunan tumpukan balok paling dalam.

Permainan tetris ini menggunakan 7 jenis balok dalam permainan nya, berikut jenis-jenis nya :


Penggunaan Matriks dalam pembuatan Tetris
Pada game tetris, terdapat blok-blok yang akan kita susun secara horizontal ataupun vertikal blok-blok tersebut dinamakan dengan grid. Jumlah tiap baris grid tergantung pada si pembuat tetris, di pembahasan ini kita ambil saja contoh tiap baris grid senilai 15 grid. Grid tersebut pada pemrograman kita buat dengan menggunakan matriks berdimensi 2. Contoh :
___________________
o o o o                                                
o o o o                                           
o o o o
__________________          
            






Sebagai contoh gambar diatas adalah matriks ukuran 4x3 (4 kolom, 3 baris). Begitu pula pada tetris juga memiliki ukuran kolom x baris (m x n). Pada kolom 1 baris 1, memiliki index[0,0]. Pada kolom 1 baris 2, memiliki indexnya[0,1]. Pada kolom 1 baris 3, memiliki index[0,2]. Pada kolom 2 baris 1, itu indexnya[1,0]. Pada kolom 2 baris 2, itu indexnya[1,1] dan s seterusnya. Di sini kami anggap susunannya terlihat seperti pada matriks dibawah ini :
[0,0] [0,1] [0,2] [0,3]
[1,0] [1,1] [1,2] [1,3]
[2,0] [2,1] [2,2] [2,3]
Baris paling atas pada tetris  (baris 1) memiliki index [0,n] sampai [0,n+1]. Sehingga dapat kita anggap ukuran layar tetris [m,n]. Setiap ada blok yang turun atau berjatuhan kita definisikan sebagai, m+1 dan setiap bergeser kekanan n+1 dan setiap kekiri n-1
Pada permainan tetris ini apabila blok yang berjatuhan telah melampaui batas dari layar tetris [m,n] maka permainan akan berakhir (game over) sehingga apabila ada baris yang penuh (sesuai dengan syarat) maka baris tersebut akan dihapus.

Uses Keys in game
---------------
    * ESC = Quit the game
    * z = Rotate the piece
    * x = Drop piece
    * Left, Right, Down = I will not offend your intelligence

>>>> Hasil Program Game :


 

Minggu, 13 Januari 2013

Program Pointer C++


Pointer yang akan kita bahas di pembahasan blog aku kali ini bukan pointer yang biasa kita gunakan di computer itu teman-teman tapi mungkin lebih tepatnya sebuah variabel yang digunakan dalam bahasa program C++.
Nah. .  di sini mungkin kalian semua masih bertanya-tanya seperti apa sih program itu . .?
Terus bagaimana  cara membuat program pointer tersebut dalam bahasa program C++ . .!!!
Baiklah langsung saja kita bahas satu persatu supaya teman-teman tidak penasaran lagi :D
Pointer adalah sebuah  variabel yang berfungsi sebagai penujuk ke obyek lain atau variabel lain. Pada kenyataan yang sebenarnya, variabel pointer berisi alamat dari suatu obyek lain (yaitu obyek yang dikatakan ditunjuk oleh pointer).
      Coding program :
1.      #include <iostream.h>;
2.      void increase (void* data, int psize)
3.      {
4.      if(psize == sizeof(char))
5.      {char* pchar; pchar=(char*)data; ++(*pchar);}
6.      else if (psize == sizeof(int))
7.      {int*pint; pint=(int*)data; ++(*pint);}
8.      }
9.      int main ()
10.   {
11.   char a = 'v';
12.   int b = 142;
13.   increase (&a,sizeof(a));
14.   increase (&b,sizeof(b));
15.   cout << " Alamat                          = " << a << endl;
16.   cout << " Nilai yang ditunjukkan = " << b << endl;
17.   cout << " ^_^ " << a << "," << b << " ^_^ " << endl;
18.   return 0;
19. }
Penjelasan :
§  Tanda [*] yang terdapat di coding nomor 2, 5, dan 7 digunakan untuk menyatakan variabel pointer.
§  Int dan char sebagai tipe data yang ditunjuk oleh variabel pointer.
§  Pchar dan pint yang terdapat di coding nomor 5 dan 7 sebagai nama variabel pointer.
§  Tanda [;] yang terdapat di coding nomor 1, 5, 7, 11, 12, 13, 14, 15, 16, 17, dan 18 sebagai tanda akhir pernyataan deklarasi.
§  Diketahui char a = [v] dan int b = [142] pada coding nomor 11 dan 12.
§  Sizeof a {sizeof (char)} diisi dengan alamat dari variabel a pada coding nomor 13.
§  Sizeof b {sizeof (int)} diisi dengan alamat dari variabel b pada coding nomor 14.
§  Alamat diperoleh dari sizeof (char) pada coding nomor 15.
§  Nilai yang ditunjukkan diperoleh dari sizeof (int)  pada coding nomor 16.

Output Program :