Game Strawberry Prolog
“Life Or Die”
Kelas : 3IA03
Anggota Kelompok :
·
Arif Rahman Hakim [ 51411140 ]
·
Dimas Bayu Prakoso [ 52411106 ]
·
Harun Al Rosid [ 53411252 ]
·
Mochamad Reza Risky [ 54411531 ]
UNIVERSITAS GUNADARMA
2014
GAME
STRAWBERRY PROLOG
“LIFE
OR DIE”
ABSTRAKSI
Dengan kemajuan teknologi
saat ini telah banyak berbagai macam jenis game yang diciptakan seperti game
yang mempunyai kemampuan Artificial Intelegent. Game tersebut dibuat untuk
mengasah kemampuan logika pemain dengan melawan komputer . Dalam penulisan ini
game yang dibuat adalah game “ LIFE OR DIE “. Game ini dapat dimainkan oleh
semua kalangan dari anak – anak sampai dewasa untuk melatih kecerdasan atau
strategi pemain dalam mengendalikan robot . game ini biasanya dimainkan
menggunakan mainan robot – robotan saja, karena teknologi sudah semakin maju
dan sudah jarang sekali masyarakat untuk memainkan permainan ini maka kami
membuatnya menggunakan media computer ataupun laptop. Karena media tersebut
sudah banyak digunakan oleh masyarakat . pembuatan aplikasi ini menggunakan
Bahasa Pemrograman Strawberry Prolog
PENDAHULUAN
LATAR
BELAKANG MASALAH
Permainan atau game
merupakan media yang digunakan untuk memenuhi berbagai kebutuhan.
Semisal kebutuhan yang timbul
akibat rasa jenuh, kebutuhan akan hiburan sampai kebutuhan dalam dunia bekerja.
Dewasa ini lebih banyak bermunculan game yang mengutamakan kecerdasan berpikir
atau respon berpikir. Game diidentikkan dengan pengaplikasian pada suatu
device, dengan begitu keaktifan dalam merespon secara fisik lambat laun
terabaikan.
Untuk melengkapi dalam pemenuhan
keaktifan respon fisik, kami berempat membuat game yang mengutamakan respon
pikiran yang terintegrasi dengan reson fisik. Game pertarungan antara 2 robot
yang menguji respon pikiran yang cepat dan melatih ketepatan pengambilan
keputusan kapan bersembunyi , berdiri serta menembak.
TUJUAN
Tujuan permainan ini adalah memperoleh score sebanyak
mungkin dengan menembaki lawan agar peluru kita mengenainya. Semakin banyak
peluru kita mengenainya maka semakin banyak juga life lawan yang berkurang
sehingga peluang kita untuk menang juga semakin besar. Pada saat akhir
permainan, sisa life yang paling banyaklah yang menjadi pemenangnya.
METODE
Dalam membuat tulisan
ini, kami menggunakan metode observasi dan teknik studi pustaka untuk
mendapatkan data dan informasi yang diperlukan. Tidak hanya itu, kami juga
mencari bahan dan sumber-sumber dari media masa elektronik yang berjangkauan
internasional yaitu, Internet.
PEMBAHASAN
Game Life Or Die ini
adalah jenis game sederhana sehingga cocok menggunakan aplikasi strawberry
prolog. Strawberry prolog merupakan sebuah bahasa pemrograman logika yang
memiliki Object Oriented Language. Pada prolog ini tidak terdapat prosedur,
hanya terdapat kumpulan data yang akan diolah. Untuk menggunakan strawberry
prolog tidak dilakukan instalasi. Jadi program dapat dijalankan dengan membuka
file strawberry prolog (.spj) di dalam strawberry prolog itu sendiri.
Untuk membuka file game Life Or
Die, kita harus masuk kedalam strawberry prolog terlebih dahulu, kemudian pilih
FILE – OPEN. Setelah itu pilih file “Life Or die.spj”.
Setelah itu akan muncul jendela
strawberry prolog dengan lembar kerja berisikan listing program game “Life Or
Die” seperti gambar dibawah ini.
Kemudian untuk menjalankan
games-nya dapat menggunakan shortcut F5. Atau pada menu bar pilih RUN - RUN. Hasilnya akan keluar jendela splash
scrren terlebih dahulu, setelah itu jika kita pilih “Start Game” maka jendela
splash screen akan hilang dan layar game akan muncul seperti pada output
dibawah ini.
Initial
State
Pada
initial state terdapat tampilan awal yang terdiri dari robot biru dan robot
hijau yang berlindung di balik tembok sebagai perlindungannya. Permainan dapat dimulai dengan memilih menu
Pilihan “Start”. Pemain dapat memilih tingkat kesulitan dalam permainan pada
menu level “easy”, “standard”, “expert”. Jika pemain memilih menu Pilihan
“Start” maka otomatis level yang akan digunakan dalam permainan adalah level
default yakni level “Mudah”. Permainan berlangsung selama 30 detik.
Permainan
“Life Or Die” dimainkan oleh satu pemain yang mengendalikan robot biru melawan
lawan yang mengendalikan robot hijau. Permainan ini di design untuk melatih
dalam menghindari serangan musuh dari tembakan yang ditujukan lawan.
Rule
(Aturan):
1. Permainan
berlangsung selama 30 detik
2. Pemain menggunakan tombol atas untuk
berdiri, tombol bawah untuk menunduk dan tombol spasi untuk menembak.
3. Menembak hanya dapat dilakukan ketika
pemain atau komputer berdiri.
4. 1
detik setelah pemain atau komputer menembak, pemain atau komputer akan otomatis
menunduk untuk menghindari tembakan beruntun serta lag pada permainan.
5. Jika pemain menembak tepat pada saat
computer berdiri maka life komputer berkurang satu, jika komputer menembak
tepat pada saat pemain berdiri maka life pemain berkurang satu
6. 1
detik setelah pemain atau komputer tertembak, pemain atau komputer akan
otomatis menunduk untuk menghindari terkena tembakan beruntun serta lag pada
permainan.
7. Pada detik 0 permainan akan berakhir dan
perhitungan life akan berjalan.
8. Jika pada detik 0 life pemain lebih dari
life komputer maka pemain dinyatakan menang.
9. Jika pada detik 0 life pemain kurang
dari life komputer maka pemain dinyatakan kalah.
10. Jika pada detik 0 life pemain sama
dengan life komputer maka permainan dinyatakan seri.
ALGORITMA
BACKWARD CHAINING
Backward chaining atau Backward
reasoning merupakan salah satu dari metode inferensia yang dilakukan
untuk di bidang kecerdasan buatan.
Backward
chaining
dimulai dengan pendekatan tujuan atau goal oriented atau hipotesa. Pada backward chaining kita akan bekerja dari
konsekuen ke antesendent untuk melihat apakah terdapat data yang mendukung
konsekuen tersebut. Pada metode inferensi dengan backward chaining akan mencari aturan atau rule yang memiliki
konsekuen ( Then klausa ...) yang
mengarah kepada tujuan yang diskenariokan/diinginkan.
Konsep AI
Kecerdasan buatan pada game ini adalah respon pada komputer. Komputer dapat
mengecek keadaan pemain apakah sedang berdiri atau tidak, ketika pemain berdiri
komputer akan menembak. Komputer dapat melakukan pengecekan ini pada saat
berdiri maupun pada saat menunduk. Jika pemain hanya diam saja tidak mau
berdiri maka komputer yang akan berdiri untuk memancing pemain berdiri pula.
TEKNIK
PEMBUATAN
Disini kami akan menjelaskan sedikit
teknik pembuatan game “Life Or Die” ini beserta kodingan program game strawberry prolog yang
kelompok kami buat :
(tanda "%" saya gunakan
untuk mengawali keterangan, sesuai dengan aturan dari strawberry prolog. )
1.
Membuat bagian awal program : deklarasi
variable, import gambar, pembuatan window.
Bagian awal program diawali dengan "?-" lalu bisa diisi dengan
deklarasi variable, import gambar dan pembuatan window. Setiap
deklarasi variable harus diawali huruf G_ di depannya. Contoh :
-----------------------------------------------------------------------------------------------------------------------
?-
G_life_green:=10,
% membuat variable G_life_green dengan nilai awal 10
G_Latar is bitmap_image("Latar.bmp",_),
% membuat variable G_Latar yang isinya adalah gambar dengan alamat
"Latar.bmp" untuk memudahkan taruh gambar dalam satu folder dengan
folder kodingan prolognya sehingga kita hanya perlu menuliskan nama filenya
saja
window(G_splashscreen,_,window_awal(_),"Splash Screen",
350, 150,640,420).
% membuat tampilan awal / window awal
dengan ukuran 640x420
close_window(G_splashscreen),
% membuat tampilan awal ditutup
window(_,_,win_func(_),"Shoot Me",0,0,1040,555).
% membuat tampilan kedua / window dalam dengan ukuran 1045 x 555
---------------------------------------------------------------------------------------------------------------------------
2.
Membuat
Menu
Diawali dengan statement
"win_func(init):-" . Ada dua jenis menu yaitu menu normal dan menu
pop up. Menu normal adalah menu biasa yang ketika di klik akan langsung
melakukan aksi tertentu. Menu Pop-up ketika di klik akan mengeluarkan sub menu.
Contoh :
win_func(init):-
menu( pop_up, _, _, menu_menu(_),"&Menu"),
% membuat
menu pop up dengan nama "Menu" dan nama variable "menu_menu",
menu popup dapat mempunyai sub menu.
3.
Membuat Sub Menu Dan Aksi Dari Sub Menu
Terusan dari kodingan diatas, untuk membuat sub menu
harus diawali dengan nama variable dari menu tersebut. Contoh :
menu_menu(init):-
menu(normal,_,_,start_game(_),"&start"),
menu(normal,_,_,menu_exit(_),"&Keluar").
%membuat
isi sub menu dari popup menu_menu yang isinya adalah start_game dan menu_exit
start_game(press):-
%membuat
aksi yang dilakukan ketika sub menu mulai_game di klik, aksi-aksi bisa
dilakukan antara lain adalah menaruh gambar dan mendeklarasikan variable
draw_bitmap( 512, 10, G_Papanwaktu, _, _),
%menaruh gambar G_cleantime pada posisi 300,10 pada
window
G_aksi_green:=0,
G_aksi_blue:=0,
G_life_green:=99,
G_life_blue:=99,
G_time:=31,
%mendeklarasikan variable
draw_bitmap( 0, 273, G_Bertahan1, _, _),
draw_bitmap( 883, 273, G_Bertahan2, _, _),
draw_bitmap( 140, 366, G_Benteng, _, _),
draw_bitmap( 785, 366, G_Benteng, _, _).
%menaruh gambar –gambar diatas pada
posisinya masing-masing. Gambar yang ditaruh harus sudah dideklarasikan
sebelumnya
4.
Membuat Menu Exit Dengan Tampilan
Peringatan Kepada user
Terusan dari kodingan diatas, berikut adalah aksi
ketika menu_exit ketika di klik yang akan keluar dari windows dengan sebelumnya
memunculkan peringatan kepada user apakah ingin keluar atau tidak.
menu_exit(press):-
close_window(_).
win_func(close) :-
not(
yes_no("","Are you sure to exit?", ?)).
%yang ini tentu gampang dimengerti,
tinggal di kopas aja kodingan diatas
5. Membuat
Aksi Yang Berjalan Ketika Tombol Di Keyboard Ditekan.
Pertama kita harus tahu kode tombol keyboard, kode 38
untuk tombol atas, kode 40 untuk tombol bawah, kode 32 untuk tombol spasi.
Untuk kode-kode lainnya silahkan cari sendiri. Contoh :
win_func(key_down(38,_)):-
G_aksi_blue:=1,
draw_bitmap( 0, 273, G_Berdiri1, _, _).
%membuat aksi
yang akan dijalankan ketika tombol tanda panah atas pada keyboard di tekan,
aksi yang dijalankan diatas adalah deklarasi variable dan penaruhan gambar.
---------------------------------------------------------------------------------------------------------------------------
6.
Membuat Statement Percabangan If, Pembuatan
Fungsi, Pemanggilan Fungsi
Yang ini butuh nalar dan perenungan sebentar,
statement if di tandai dengan “->” lalu dapat diikuti dengan percabangan
dengan menambahkan “else”. Untuk membuat fungsi tinggal ketik “namafungsi(_):-”
. Dan untuk memanggilnya tinggal ketik “namafungsi(_)”. Contoh :
musuhberdiri(_):-
G_aksi_green:=1,
draw_bitmap( 883, 273, G_Berdiri2, _, _).
%membuat fungsi bernama musuhberdiri
lengkap dengan isinya
musuhcek(_):-
G_aksi_blue=1->
G_aksi_green:=1,
draw_bitmap( 883, 273, G_Berdiri2, _, _),
wait(0.1),
draw_bitmap(780,335,G_Asaphijau,_,_),
draw_bitmap(580,335,G_Asaphijau,_,_),
%membuat fungsi musuhcek lengkap dengan isinya
%Membuat
Statement Percabangan. Jika benar variable G_Time bernilai 18 dan G_Level
bernilai 2 maka akan dipanggil fungsi musuhcek, jika salah maka akan dipanggil
fungsi musuhberdiri.
Berikut ini merupakan hasil
tampilan output yang akan muncul jika langkah-langkah pembuatan diatas
dilakukan dengan benar.
PENUTUP
Demikianlah
tulisan yang kami buat ini, semoga bermanfaat dan menambah pengetahuan para
pembaca. Kami mohon maaf apabila ada kesalahan ejaan dalam penulisan kata dan
kalimat yang kurang jelas, dimengerti, dan lugas.Karena kami hanyalah manusia
biasa yang tak luput dari kesalahan Dan kami juga sangat mengharapkan saran dan
kritik dari para pembaca demi kesempurnaan tulisan ini. Sekian penutup dari
kami semoga dapat diterima di hati dan kami ucapkan terima kasih yang
sebesar-besarnya.
DAFTAR PUSTAKA