Rabu, 21 November 2012

Game Draughts dengan Strawberry Prolog


A. Initial State
Tujuan
            Adapun tujuan pembuatan game ini adalah untuk memberikan sedikit hiburan terhadap pengguna tanpa membutuhkan banyak aturan dan hanya berpikir dengan sederhana.
Pengenalan Game Draughts
            Mungkin kita sedikit merasa asing dengan yang namanya permainan draughts, pada hakikatnya draughts hanyalah segelintir permainan sederhana dalam kehidupan sehari-hari, hanya saja mungkin penamaan dari game tersebut berbeda-beda di setiap daerah. Untuk lebih jelasnya game draughts merupakan game sederhana dimana kita mengisi bulatan-bulatan ke tempat yang tersedia hingga membentuk tiga buah bulatan secara berurutan dalam posisi horizontal saja atau vertikal saja. Gambaran dari game tersebut mirip dengan jaring laba-laba, yaitu setiap bulatan dihubungkan dengan garis antara bulatan yang satu dengan yang lainnya. Bulatan yang disediakan dalam permainan ini adalah 24 buah. Dalam permainan ini kita berusaha bagaimana menghalangi player dari komputer untuk melakukan set, sehingga kita harus menutup semua jalan keluar yang memukinkan pengesetan tersebut.
Program Editor
            Pembuatan game “draughts” menggunakan strawberry prolog. Prolog merupakan bahasa pemograman logika atau disebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancis yaitu programmation en logique (pemograman logika). Bahasa ini diciptakan oleh Alain Colmeraver dan Robert Kowalski sekitar tahun 1972 dalam upaya menciptakan suatu bahasa pemograman yang memukinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan di komputer.
            Disini strawberry prolog sebagai program editor. Pemilihan software ini dilakukan karena cukup mudah untuk dipahami meskipun dalam arti sebenarnya bahasanya memiliki sedikit arti abstrak di bagian kodingan. Prolog ini juga sering dipergunakan untuk membuat beberapa project yang berbasis AI (Artificial Inteligence). Disisi lain tidak dipungkiri memang bahwa bahasa pemograman ini memiliki bug sehingga mengganggu proses kerja kita. Strawberry prolog ini bersifat portabel, dimana kita tidaklah perlu menginstal pada komputer kita, kita cukup mengekstrak dan software siap untuk digunakan.
            Untuk versi pertama dari strawberry prolog sendiri dirilis pada tahun 1996 dan dipinpin oleh Strawberry Dimiter Dobrev.
B.       Rules
·      Pada saat memulai game, kita memiliki ancaman atau musuh utama yaitu melawan waktu dan juga mengalahkan player computer tersebut.
·      Pada saat memulai game waktu akan berjalan dalam hitungan mundur yaitu selama 100 detik.
·      Di bagian kiri dan kanan terdapat bulatan yang telah disediankan masing-masing 9 buah.
·      Bulatan warna merah merupakan milik user sedangkan bulatan biru milik komputer (lawan kita).
·      Dalam permainan setiap pojok dari sebuah garis kita bisa mengisi bulatan merah, dan yang menjadi pemain pertama adalah user.
·      Isi  bulatan pada bulatan kosong yang disediakan hingga membentuk 3 buah bulatan yang sewarna secara horizontal saja atau vertikal saja.
·      Pada saat komputer ingin set, maka jika kita tidak menghalangi jalannya kita akan dapat pesan kalau kita tidak sukses dalam permainan. Dan untuk melanjutkan klik saja OK.
C.      Goal
1.      Kondisi jika user menang
Pemenangnya adalah user jika telah melakukan set bulatan merah 3 buah secara berurutan dalam posisi horizontal saja atau vertikal saja. Untuk menang usahakan selalu menutup jalan pemain dari komputer terlebih dahulu walaupun kita ingin set. Jika kita tidak melakukan hal tersebut maka bulatan dimana kita letakkan yang terakhir maka akan hilang atau di delete, dalam hal ini bulatan berkurang satu. Hal ini berlaku untuk permainan selanjutnya.

2.      Kondisi jika computer menang
Pemenangnya computer jika kita tidak menghalagi jalannya pengesetan bulatan warna biru tersebut. Dan jika computer set maka akan muncul pesan “Anda kalah”. Setelah itu kita klik ok untuk melanjutkannya.
3.      Kondisi jika permainan seri
Permainan akan seri jika tidak ada bulatan yang set diatara kedua pemain, baik itu komputer maupun user. Selain itu permainan juga akan seri jika waktu habis. Waktu yang diberikan adalah sekitar 100 detik dimulai dari sejak kita membuka aplikasi.

D.      Konsep AI
Draughts merupakan suatu permainan yang menggunakan konsep Artificial Inteligence atau kecerdasan buatan. Adapun kecerdasan buatan yang dimaksud dalam permainan ini adalah kita memiliki lawan yaitu computer. Disini kita berinteraksi dengan pemain dari komputer yaitu computer berusaha mengalahkan kita dan kita juga punya misi yang sama. Permainan akan dimenangkan jika di salah satu pemainmemiliki strategi yang lebih bagus dalam menutup jalannya bulatan lawan dan mengesetkan bulatan yang sama di waktu yang sama.
      Untuk memainkan game ini kita harus memiliki kompiler strawberry prolog terlebih dahulu. Ini dikarenakan saya masih menggunakan strawberry prolog versi yang gratisan sehingga tidak bisa dibuat menjadi object coden berbentuk executable. Untuk memainkan game ini terlebih dahulu buka strawberry prolog kemudian klik File>Open dan pilih nama game tersebut. Setelah itu untuk menjalankan tekan F5.
Algoritma Minmax
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. Hal ini berarti permainan-permainan tersebut dapat dijelaskan sebagai suatu rangkaian aturan dan premis. Dengan itu, kita dapat mengetahui, pada titik tertentu permainan, langkah-langkah yang mungkin berikutnya. Permainan tersebut berbagi karakteristik yang sama, yakni “permainan dengan penuh informasi”. Setiap pemain mengetahui semua langkah-langkah yang mungkin dari pemain lawannya.
PENERAPAN ALGORITMA MINIMAX DALAM DRAUGHTS
Penerapan algoritma Minimax dalam draughts dibuat berdasarkan prosedur Minmax 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 Minmax. Hasilnya adalah jika terdapat posisi yang pernah ditemukan 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.

Untuk mengunduh file lengkapnya klik desini

1 komentar:

Felani Galih Prabawa mengatakan...

bang, ane izin buat jadiin game ini project LAB TI ane yaa, bang?? nanti ane sertakan referensinya dari blog abang. terus nanti ane ubah-ubah juga...
makasih bang

Regards,

TI UG 2011