Minggu, 06 Juli 2014

Pengantar Teknologi Game Part III


CATUR

Catur adalah permainan yang dimainkan antara dua pemain . Permainan ini dimainkan pada papan catur , yang merupakan papan kotak-kotak persegi dengan 64 kuadrat diatur dalam sebuah-oleh-delapan grid delapan. Pada awalnya, tiap pemain kontrol enam belaspotongan : satu raja , satu ratu , dua rooks , dua kesatria , dua uskup , dan delapan pion . Tujuan permainan ini adalah untuk sekakmatlawan raja, dimana raja adalah serangan langsung (di ” cek “) dan tidak ada cara untuk menghapus atau mempertahankannya dari serangan pada langkah berikutnya.

Bentuk permainan saat ini muncul di Eropa pada paruh kedua abad ke-15 setelah berevolusi dari game yang lebih tua ( Shatranj ) dari India asal. Aspek seni dapat ditemukan dalam komposisi catur . Teoretikus telah mengembangkan luas catur strategi dan taktikpermainan sejak awal itu. Salah satu tujuan awal para ilmuwan komputer adalah untuk menciptakan mesin-bermain catur . Catur sekarang sangat dipengaruhi oleh kemampuan dari program catur dan kesempatan untuk bermain online. Pada tahun 1997 Deep Bluemenjadi komputer pertama yang mengalahkan seorang memerintah Juara Dunia dalam pertandingan ketika mengalahkan Garry Kasparov.

Tradisi catur kompetitif terorganisir dimulai pada abad ke-16. Resmi pertama Juara Catur Dunia , Wilhelm Steinitz , mengklaim gelar pada tahun 1886; Juara Dunia saat ini adalah Viswanathan Anand . Catur adalah olahraga yang diakui dari Komite Olimpiade Internasional , dan dipimpin oleh FIDE . Hari ini, catur merupakan salah satu dunia yang paling populer games, dimainkan oleh jutaan orang di seluruh dunia di rumah, di klub , online, melalui korespondensi , dan di turnamen .

  1. Jenis Permainan (Statik atau Dinamik)
Catur ini merupakan jenis permainan dinamik dimana pemain bisa menentukan langkah yang dapat ditempuh sendiri untuk memenangkan permainan tanpa dasar atau ketentuan dari aturan permainan. Seperti dapat dilihat dari cara bermain permainan ini, Sebelum bertanding, pecatur memilih warna buah yang akan ia mainkan. Pemegang buah putih memulai langkah pertama, yang selanjutnya diikuti oleh pemegang buah hitam secara bergantian. Tujuan permainan adalah mencapai posisi skak mat. Hal ini bisa terjadi bila Raja terancam dan tidak bisa menyelamatkan diri ke petak lain. Tidak selalu permainan berakhir dengan kekalahan, karena bisa terjadi pula peristiwa seri atau remis di mana kedua belah pihak tidak mampu lagi meneruskan pertandingan karena tidak bisa mencapai skak mat. Peristiwa remis ini bisa terjadi berdasarkan kesepakatan maupun tidak. Salah satu contoh remis yang tidak berdasarkan kesepakatan – tetapi terjadi adalah pada keadaan remis abadi. Keadaan remis yang lain adalah keadaan pat, dimana yang giliran melangkah tidak bisa melangkahkan buah apapun termasuk Raja, tetapi tidak dalam keadaan terancam skak. Dalam pertandingan catur pihak yang menang biasanya mendapatkan nilai 1, yang kalah 0, sedang draw 0.5.

  1. Pembuatan Game dan AI dalam permainan
Permainan  ini dapat dibuat dengan berbagai macam bahasa pemograman dengan sebuah aturan algoritma. Tree search adalah salah satu algoritma inti dalam banyak program permainan game. Tree search melihat semua kemungkinan yang ada dalam permainan sebagai pohon, dengan langkah legal dalam permainan sebagai akar dari pohon-pohon tersebut. Daun dari pohon-pohon yang ada merupakan posisi terakhir dari permainan, di mana hasil dari permainan sudah dapat diketahui. Masalah yang dihadapi dalam menyusun sebuah algoritma permainan adalah ukuran dari pohon permainan ini sangatlah besar, dapat dirumuskan sebagai W^D, di mana W adalah rata-rata jumlah langkah yang legal dalam satu posisi, dan D adalah kedalaman dari sebuah pohon. Melakukan pencarian terhadap keseluruhan pohon adalah mustahil, terutama karena keterbatasan waktu yang ada, bahkan untuk komputer tercepat sekalipun. Maka dari itu penggunaan algoritma yang tepat untuk melakukan pencarian terhadap pohon didasarkan pada menghindari pencarian terhadap seluruh pohon.

Dalam sebuah permainan catur menentukan langkah terbaik dapat dilihat sebagai suatu proses searching dalam sebuah pohon. Pada akar pohon kita mencari posisi successor terbaik untuk dijalankan oleh pemain pada tingkat selanjutnya kita mencari posisi successorterbaik berdasarkan dari posisi musuh, dst.

Pencarian dari keseluruhan pohon akan menghasilkanW^D kali perhitungan seperti sudah dijelaskan sebelumnya. Hal ini tentunya mustahil mengingat banyaknya langkah yang mungkin dalam suatu permainan catur (semakin banyak langkah yang mungkin dalam permainan mengakibatkan menignkatnya nilai dari W dan D).

SNAKE

Game snake merupakan game sederhana dimana seekor ular akan memakan makanan agar dapat lanjut kelevel berikutnya. Semakin tinggi level yang dihadapi maka penghalangnya makin banyak. Dalam permainan ini pemain berusaha bagaimana menghalangi penghalang dibuat, sehingga pemain harus berusaha menghindari rintangan tersebut untuk lanjut ke level berikutnya.

  1. Jenis Permainan (Static atau Dinamic)
Permainan ini berjenis permainan dinamic dimana Permainan akan dimenangkan jika di salah satu pemain memiliki strategi yang baik dalam menyelsaikan permainan untuk melanjutkan kelevel berikutnya.

  1. Pembuatan Game dan AI dalam Pembuatannya
Permainan  ini juga dapat dibuat dengan berbagai bahasa pemograman dengan algoritma yang bisa digunakan juga. Salah satunya bahasa pemograman prolog dengan kompiler pascal. Permainan ini dibuat dapat diberikan konsep AI dengan menggunakan algoritma Minimax. 

Penerapan algoritma Minimax dalam Snake dibuat berdasarkan prosedur Minimax untuk mendapatkan langkah terbaik dari posisi yang ada. Setiap posisi memiliki nilai yang dapat dihasilkan dari langkah terbaik, dengan berasumsi bahwa AI akan selalu mencoba memaksimalkan nilai, ketika lawan akan mencoba untuk meminimalkannya.Ketika prosedur minimax mencapai akar pada pohon pencarian (posisi saat tersebut), akan menghasilkan langkah terbaik dengan asumsi lawan akan menggunakan kriteria evaluasi yang sama. Beberapa versi program yang dibuat kebanyakan telah menerapkan algoritma pemotongan alpha-beta.Terdapat dua macam metode, yang disebut rote learning. Metode tersebut memiliki penyimpan untuk setiap posisi yang ditemui selama permainan dengan tidak menghilangkan nilai yang ditentukan oleh prosedur Minimax. Hasilnya adalah jika terdapat posisi yang pernah ditenukan sebelumnya, akan dimunculkan sebagai posisi terminal pada pohon pencarian. Sehingga, pencarian akan semakin mudah karena nilai posisi diambil dari hasil pencarian yang telah dilakukan sebelumnya. Satu masalah awal yang ditemukan adalah program tidak mendukung untuk melangkah langsung menuju kemenangan.