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 menembak, pemain atau komputer akan otomatis
menunduk untuk menghindari 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. 1.
Membuatbagianawalprogram : deklarasi
variable, import gambar, pembuatan
window.
Bagianawal 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
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
Diawalidengan 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. MembuatSub
Menu Dan Aksi Dari Sub Menu
Terusandarikodingandiatas, 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 DenganTampilanPeringatanKepada user
Terusandarikodingandiatas, 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.
MembuatAksi Yang Berjalan Ketika Tombol
Di Keyboard Ditekan.
Pertamakitaharustahu 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, PembuatanFungsi, PemanggilanFungsi
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
membantu banget gan infonya, boleh minta kodingannya gak gan ? kalo boleh tolong kirim ke fransrisken@rocketmail.com thank you