Minggu, 29 April 2012

GAME ALGORITHMS


Permainan Checkers adalah sebuah permainan berkonsep Kecerdasan Buatan (Artificial Intelligence).  Checkers adalah permainan yang memakai strategi abstrak dan dimainkan oleh pemain dengan melakukan langkah diagonal terhadap ikon dan bertujuan untuk menghabiskan ikon lawan dengan cara melangkahinya.
Permainan Checkers telah dimainkan di Eropa sejak abad ke16, dikembangkan dari permainan alquerque. Bentuk yang paling populer dari pemainan ini adalah international draughts, yang dimainkan pada papan 10×10. Bentuk yang juga populer adalah English draughts, yang disebut American Checkers, dimainkan pada papan 8×8.
Permainan Checkers menggunakan bahasa prolog. Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.
Pada blog ini saya akan menjelaskan beberapa algoritma yang ada pada permainan Checkers. Permainan Checkers menggunakan beberapa Algoritma. Dibawah ini saya akan menjelaskan beberapa algoritma yang ada pada game Checkers.
·         Algoritma Alpha-beta : algoritma ini merupakan modifikasi dari algoritma Minimax. Secara teori algoritma Alpha-beta lebih unggul dibandingkan dengan algoritma Minimax, baik dari kemampuan program dalam melakukan searching maupun dari sisi perbandingan waktu. Karena algoritma Alpha-beta dapat mereduksi pencarian node pada algoritma Minimax.
·         Algoritma Minimax : Algoritma Minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilai maksimal. Algoritma ini diterapkan dalam permainan yang melibatkan dua pemain seperti tic tac toe, Checkers, go dan permainan yang menggunakan strategi atau logika lainnya. Algoritma minimax merupakan basis dari semua permainan berbasis AI seperti permainan catur misalnya. AI permainan catur tentunya sudah sangat terkenal dimana AI tersebut bahkan dapat mengalahkan juara dunia sekalipun. Pada algoritma minimax, pengecekan akan seluruh kemungkinan yang ada sampai akhir permainan dilakukan. Dalam suatu permainan sederhana, terdapat algoritma yang digunakan untuk mencari langkah terbaik dari situasi sekarang. Algoritma yang paling terkenal ialah algoritma ini. Algoritma Minimax ialah suatu metode yang sangat bermanfaat untuk permainan dua pemain sederhana. Metode ini digunakan untuk memilih langkah terbaik yang diberikan, dimana kedua pemain saling berusaha untuk memenangkan permainan. Setiap pemain mengetahui langkah-langkah yang mungkin diberikan pada situasi permainan saat ini. Sehingga untuk setiap langkah dan semua langkah selanjutnya akan dapat diketahui (M. Tim Jones, 2008).

Minggu, 15 April 2012

Algoritma pada Game Tetris


           Pengertian Game Tetris
Tetris adalah permainan teka-teki yang disusun dan diprogram oleh sepasang programmer berkebangsaan Rusia.Dalam permainan tetris, balok-balok tetris berjatuhan ke area permainan dalam waktu konstan.Balok tetris selalu terdiri dari 4 balok kecil yang membentuk 7 macam rupa.

Algoritma
Pemain dapat mengontrol balok tetris yang jatuh melalui 4 tombol arah panah untuk menggeser ke kanan atau ke kiri dan tombol arah panah ke bawah untuk mempercepat jatuhnya balok tetris. Satu kendali yang lain adalah untuk memutar bentuk balok tetris 90ยบ’
Algoritma yang gunakan untuk mencari solusi dari permainan tetris adalah algoritma yang menggunakan konsep-konsep yang ada dalam algoritma Greedy dan Algoritma BruteForce.Algoritma Greedy merupakan metode yang paling umum digunakan untuk memecahkan masalah optimasi.Algoritma ini sederhana dan sesuai dengan tujuan yang ada.



Algoritma Greedy memecahkan masalah langkah per langkah, pada setiap langkah:
1. mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan (prinsip “take what you can get now!”)
2. berharap bahwa dengan memilih optimum local pada setiap langkah akan berakhir dengan optimum global 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.Algoritma ini menggunakan prinsip Greedy dalam mencari langkah sollusi yang paling menguntungkan. 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 Algoritma yang kami kemukakan akan mencari penempatan balok yang jatuh ke ruang yang paling tepat sesuai prioritas keuntungan di atas diantara susunan tumpukan  balok. Pencarian ini akan dilakukan secara Brute Force. Balok yang jatuh akan dicoba untuk ditempatkan ke ruang di antara susunan tumpukan balok dibawah.

Algoritma ini akan mencari penempatan yang sesuai dengan prioritas di atas. Pencarian solusi diantara susunan tumpukan balok akan dilakukan secara Brute Force. Algoritma ini akan mencari solusi paling menguntungkan untuk setiap sisi balok yang sedang jatuh. Pencarian solusi untuk setiap sisi dilakukan secar Brute Force. Apabila pada skala prioritas tertinggi memiliki lebih dari satu solusi terbaik yang sama, maka diantara solusi tersebut akan dibandingkan satu sama lain untuk mencari yang paling menguntungkan dengan standard prioritas selanjutnya, dan begitu selanjutnya. Apabila pada skala prioritas tertinggi tidak memiliki solusi, maka akan mencari solusi paling menguntungkan dengan skala prioritas selnjutnya, dan begitu selanjutnya. Apabila pada skala prioritas tertinggi hanya memiliki satu solusi paling  menguntungkan, maka akan dibandingkan dengan solusi dari hasil pencarian solusi untuk sisi balok yang lain. Diantara setiap solusi sisi balok, dicari solusi yang paling menguntungkan sesuai skala prioritas di atas. Dan balok akan ditempatkan pada ruang tersebut.

Apabila ada kasus seperti diatas, maka algoritma tersebut akan mencari solusi yang paling menguntungkan untuk menempatkan balok tersebut ke ruang di antara susunan tumpukan balok. Pencarian dicari secara brute force dari kiri ke kanan untuk sisi yang pertama kali keluar.Dapat dilihat seperti gambar berikut, bahwa lgoritma seakan-akan menempatkan balok tersebut dari kiri ke kanan untuk balok dengan sisi tersebut.

Apabila ada kasus seperti diatas, maka algoritma kami akan mencari solusi yang paling menguntungkan untuk menempatkan balok tersebut ke ruang di antara susunan tumpukan balok. Pencarian dicari secara brute force dari kiri ke kanan untuk sisi yang pertama kali keluar.Dapat dilihat seperti gambar berikut, bahwa lgoritma seakan-akan menempatkan balok tersebut dari kiri ke kanan untuk balok dengan sisi tersebut.
Setelah algoritma ini mancari solusi sampai paling kanan, maka algoritma ini akan menyimpan satu solusi terbaik yang ada. Apabila ada beberapa solusi yang sama baiknya, maka akan diambil penempatan paling kiri, seperti dilihat dibawah ini.

Setelah menyimpan solusi terbaik untuk sisi tersebut, maka algoritma ini akan mulai mencari solusi optimum untuk sisi berikutnya. Tampak di bawah, algoritma in seakan-akan memutar balok untuk memulai pencarian sisi berikutnya.Sisi berikut yang kami maksud disini adalah sisi dimana balok yang sedang jatuh diputar 900 searah jarum jam.

Setelah itu, algoritma ini akan menyimpan solusi dari setiap sisi berikutnya, seperti terlihat pada tiga gambar berikut ini.

Diantara setiap solusi sisi balok, dicari solusi yang paling menguntungkan sesuai skala prioritas di atas. Dan balok akan ditempatkan pada ruang tersebut. Seperti terlihat pada gambar berikut, algoritma ini telah menemukan solusi terbaik, dan menempatkan balok pada ruang tersebut.



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, kalo contoh yang kami gunakan berjumlah 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.

Analisis Game Plants versus Zombies



Game Plants vs zombies adalah sebuah game pertarungan antara Zombie-zombie dan Plants(Tanaman-tanaman). Game ini seperti sebuah game yang  membentuk pertahanan agar musuh (zombie)  tidak bisa masuk ke markas (rumah) kita untuk memakan otak manusia. Game ini dikembangkan dan diterbitkan oleh PopCap Games untuk versi Windows dan Mac OS X. Permainan melibatkan pemilik rumah dengan menggunakan banyak jenis tanaman untuk melumpuhkan serangan dari para zombie. Game ini pertama kali dirilis pada 5 Mei 2009 dan terus dikembangkan untuk berbagai platform game sampai Februari 2011. Saat bermain game ini kita diharuskan melawan para zombie – zombie yang bisa memakan apa saja termasuk otak kita. Semakin tinggi level yang kita mainkan, maka zombie yang menyerang akan semakin bervariasi sesuai dengan level dan tentunya akan menjadi sulit untuk dikalahkan. Selain itu tanaman-taman juga akan berkembang sesuai dengan kesulitan dari level yang kita mainkan. Jika suatu level telah terselesaikan maka sebuah bonus akan kita dapatkan yaitu tanaman baru, alat-alat baru. Selain itu, kita juga diharuskan untuk menyelesaikan Adventure Mode agar dapat memainkan mode-mode lainnya.


System requirementsnya :

OS Win7, Vista, XP
CPU 1,2 GHz
RAM 1 GB
HDD Space 65 MB of free space
Graphics 128 MB
DirectX compatible sound
 

Mode-mode dalam Game Plants Versus Zombie : 
Seperti yang kita lihat pada gambar diatas, Game ini terdiri dari 4 Mode, yaitu
1.      Adventure : pada mode ini kita bermain untuk melawan zombie. Game ini terdiri dari banyak level. Seperti saya katakana di awal pembahasan tadi. Semakin tinggi level yang kita mainkan memiliki tingkat kesulitan tertentu. Final dari game ini adalah melawan Boss dari para zombie. Selain itu, kita juga akan mendapatkan kejutan setelah kita menyelesaikannya mode ini. ;-)
Game bisa di dapatkan dengan klik disini : download game plants vs zombie
2.      Mini – Games : Games ini dapat kita mainkan apabila kunci dari game ini telah terbuka yakni sebuah kado yang kita dapatkan pada Adventure mode yang bertuliskan bahwa mode ini telah dapat dimainkan. Pada mode Mini Games, terdapat 20  game mini yang dapat kita mainkan dan apabila kita memenangkan game ini, kita akan mendapatkan throphy dan diminta untuk mengumpulkannya hingga lengkap 20.
3.      Puzzle : mode ini tidak dapat dimainkan apabila kita belum mendapatkan izin atau menyelesaikan Adventure Mode. Pada game ini terdapat 2 jenis.
a.      Vasebreaker : disini kita diminta untuk menyerang zombie-zombi dengan memecahkan vas yang bias saja berisi zombie atau tanaman-tanaman yang dapat membunuh zombie-zombie tersebut.
b.      Zombie : disini kita menjadi zombienya, dimana kita diminta untuk menyusun strategi agar dapat memakan memakan tanaman dan  memasuki markas.
Pada kedua mode ini kita dapat mengumpulkan throphy apabila menang dan melengkapinya.
4.      Survival : adalah mode pertarungan dimana kita akan mengatur strategi untuk mengalahkan zombie. Pada mode ini kita harus bertahan dengan serangan-serangan dari zombie-zombie di berbagai tempat dan waktu seperti pada Adventure Mode, misalnya diatap, kolam renang baik siang maupun malam hari.

 THE PLANTS (Tanaman):
Terdapat 40 jenis tanaman yang ada pada permainan ini. Berikut ini adalah contoh beberapa tanaman yang ada pada permainan ini. Kita dapat mengetahuinya pada Almanac. Almanac dapat kita dapatkan pada Adventure Mode. Berikut beberapa contohnya :


Peashooter   :   merupakan tanaman dasar yang ada pada gudang senjata. Tanaman ini muncul pertama kali kita memainkan game ini. Serangan yang dihasilkan cukup kuat dan efektif untuk melawan zombie.

Sunflower     :   Tanaman ini berfungsi untuk meningkatkan jumlah matahari yang akan pemain dapatkan. Matahari sangat penting bagi tanaman dan kelangsungan hidup pemain. Dengan mengumpulkan banyak sinar matahari, pemain dapat menambah berbagai macam tanaman untuk melawan zombie.

Cherry Bomb :   Tanaman ini untuk memberikan reaksi eksplosif bagi para zombi yang  berada di dekatnya.  Bekerja dalam jarak 3x3 yang berpusat di sekitar tempat di mana pemain menempatkannya.

Wall-Nut      :     Tanaman pertahanan yang cukup kuat, yang akan terus mencegah para zombi di titik di mana pemain meletakkannya. Karena para Zombie akan memakan terus Tanaman ini hingga habis.


 Snow Pea    :     Seperti Peashooter, tanaman ini juga akan menembak para zombie. Namun tanaman ini akan membekukan zombi dan membuat pergerakan mereka lebih lambat. Baik untuk menahan para zombie.


THE ZOMBIES (Zombie) :
Ada 26 jenis zombi penyerang yang ada pada permainan ini. Zombie-zombie inilah target atau yang akan kita kalahkan dalam bermain game ini. Berikut ini adalah beberapa contoh dari beberapa zombi penyerang.

 
Regular Zombie   :   Zombi yang paling mudah dihancurkan. Sangat mudah untuk dihancurkan. Namun, berhati-hati jumlah mereka sangat banyak.

  
 
Flag Zombie       :    Hanya karena dia membawa sebuah bendera tidak berarti dia akan memakan otak anda. Memimpin setiap datangnya banyak Zombie.

 
Conehead Zombie  :   Regular zombie dengan topi kerucut di atasnya yang membantu  pertahanannya. Memakan waktu sekitar dua kali perusakan dari regular zombie. 

 
Pole Vauting Zombie  :   Bergerak cepat sampai dia memenuhi tanaman pertama yang ia akan makan (kecuali tall-nut) lalu ia akan bergerak lambat (memakan tall-nut). Dalam kata lain, ia memiliki galah yang dapat digunakannya untuk meloncati tanaman pertama yang ada di dekatnya.

Buckethead Zombie   :   merupakan Zombie dengan Ember besi dikepalanya, membutuhkan waktu 5x lebih lama dari perusakan regular Zombie.  Namun, embernya dapat dilumpuhkan (dicuri) apabila kita memiliki magnet-shroom.



sumber : http://arumyomoshiroi.blogspot.com/2010/05/game-plants-versus-zombies.html 
http://davidsukraman.blogspot.com/2011_04_01_archive.html

Sabtu, 14 April 2012

Sejarah,Jenis dan Katagori Teknologi Game

Sejarah dan Perkembangan Video Game
Video game berawal dari pengembangan tabung sinar katoda yang terdapat dalam sistem peluru pertahanan pada akhir Perang Dunia II. Program-program ini kemudian diadaptasi ke dalam bentuk permainan sederhana.

Game Generasi Tahun 1952 - 1988
Tahun 1952, di Universitas Cambridge, A.S Douglas menulis sebuah tesis untuk gelar sebuah PhD-nya mengenai interaksi antara komputer dan manusia. Dalam tesisnya itu ia menciptakan game komputer dari sebuah permainan tradisional bernama Tic-Tac-Toe. Game ini diprogram dengan memakai komputer EDVAC vacuum tube yang memiliki layer berupa cathode ray tube (CRT). Kemudian di tahun 1958. William Haginbotham menciptakan video game pertamanya. Berbeda dengan Douglas, video game pertamanya yang berjudul Tennis for Two diciptakan dan dimainkan di osciloscope. kemudian dimulai pada tahun 1976 dimana era munculnya 8 bit kurang dari 4 bit era. Pada generasi ini  keluar console game yang di rilis oleh Fairchild Channel F dan Radofin 1292 Advanced Programmable Video system.Dan pada generasi kedua ini juga banyak bermunculan console video game dan menjadi  buruan orang banyak. Console yang termasuk generasi kedua adalah dari ki-ka adalah Fairchild Channel F,Atari 2600, Magnavox Odyssey ver. 2 ,  Atari 5200 . setelah itu munculnya nitendo dan sega,  mereka muncul  pada tahun 1983 yang di produksi oleh negeri matahari terbit yaitu jepang yang perusahaannya bernama FAMICOM atau yang suka saya sebut sebagi nitendo yang juga menggunakan 8 bit prosessor. Dan setelah itu muncul SEGA yang menjadi saingan NITENDO pada game console yang beredar. Secara kualitas gambar kedua console game ini hampir sama, tetapi sega memiliki 16 bit prosessor .setelah itu nitendo dan sega saling bersaing dan kemudian mulai mengenal console game mini yang bisa dibawa kemana-mana.  dimulai pada tahun 1988 Sega mengeluarkan sega baru yaitu Sega mega drive yang kualitas gambarnya lebih bagus dibandingkan nitendo setelah itu NES tidak mau kalah sehingga NES kembali meluncurkan SNES(super nitendo entertainment system. Dan setelah itu bermunculan console game mini seperti gameboy yang diprduksi oleh nitendo, dan mulai berkeluaran produk console game yang berbasis CD.

Generasi Tahun 1999 sampai tahun 2010.
Ini merupakan perkembangan yang paling drasitis SONY mengeluarkan SONY PlayStation yang menrupakan console game yang sudah bisa memiliki gambar 3D dan menggunakan prosessor 32 bit. Console ini menggunakan CD untuk memainkan jenis permainan dengan menggunakan optic utuk membaca kepingan CD setiap game yang di masukan. Kualitas gambar hamper seperti real. Seluruh orang didunia menganggap ps ini sebagai trobosan yang baik dalam dunia game. ini mulai berdatangan console game yang mendukung gambar 3D dan mulai persaingan yang ketat karena beberapa produsen menunjukan keunggulan masing- masing dari console yang mereka produksi .  kemudian bisa dibilang dimulai dari Sony playstasion mengeluarkan PS3 yang kualitas gambar real pada generasi ini juga keluar saingan dari ps3 yaitu xbo 360 dan nitendo wii. Semua game ini memiliki kualitas gambar yang hamper sama tetapi sangat jauh dengan kualitas gambar di generasi kelima. Dan data pad video game yang diggunakan cukup besar. Seperti Sony play station 3 menggunakan blue ray , blue ray berkapasitas 200 giga bite bahkan sekarang sudah ada yang 500 gigabite.
Semua console ini juga bisa dimainkan didalam PC atau computer tetapi computer anda harus berspesifikasi bagus sehingga dapat menampilkan gambar real dengan kualitas gambar yang bagus.


referensi :
http://campzalam.blogspot.com/2012/04/sejarahjenis-dan-katagori-game.html