(tanda "%" digunakan 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_Variable1:=10;
% membuat variable G_variable1 dengan nilai awal 10
G_Gambar1 is bitmap_image("Gambar1.bmp",_),
% membuat variable G_Gambar1 yang isinya adalah gambar dengan alamat "Gambar1.bmp" untuk memudahkan taruh gambar dalam satu folder dengan folder kodingan prolognya sehingga kita hanya perlu menuliskan nama filenya saja
window(_,_,win_func(_),"Project1",100,100,800,420).
% membuat window dengan ukuran 800x420
------------------------------------------------------------------------------------------------------------------------------------
- 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_pilihan(_),"&Pilihan"),
% membuat menu pop up
dengan nama "Pilihan" dan nama variable "menu_pilihan",
menu popup dapat mempunyai sub menu.
menu( normal, _, _,
menu_bantuan(_), "&Bantuan"),
% membuat menu biasa
dengan nama "Bantuan" dengan nama variable "menu_bantuan"
------------------------------------------------------------------------------------------------------------------------------------
- 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_pilihan(init):-
menu(normal,_,_,mulai_game(_),"&Mulai"),
menu(normal,_,_,menu_exit(_),"&Keluar").
%membuat isi sub menu dari popup menu_pilihan yang isinya adalah
mulai_game dan menu_exit
mulai_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( 300, 10, G_cleantime, _, _),
%menaruh gambar G_cleantime pada posisi 300,10 pada window
G_aksi_red:=0,
G_aksi_blue:=0,
G_life_red:=10,
G_life_blue:=10,
G_time:=31,
%mendeklarasikan variable
draw_bitmap( 0, 140, G_Tentaranunduk1, _, _),
draw_bitmap( 610, 140, G_Tentaranunduk2, _, _),
draw_bitmap( 170, 220, G_Tembok, _, _),
draw_bitmap( 550, 220, G_Tembok, _, _).
%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("","Benar Anda
Ingin Keluar Dari Permainan?", ?)).
%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, 150,
G_Tentaranembak1, _, _).
%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. Untuk memahami 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_red:=1,
draw_bitmap( 610, 150, G_Tentaranembak2, _, _).
%membuat fungsi bernama musuhberdiri lengkap dengan isinya
musuhcek(_):-
draw_bitmap( 610, 150, G_Tentaranembak2, _, _),
wait(0.5),
draw_bitmap(550,197,G_Dorred,_,_),
G_aksi_red:=2,
%membuat fungsi musuhcek lengkap dengan
isinya
(G_time=18->
G_level=2->
musuhcek(_) else musuhberdiri(_)),
%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.
---------------------------------------------------------------------------------------------------------------------------------
Contoh Program Lengkap Strawberry Prolog
Berikut adalah project kuliah ane, tentang AI strawberry Prolog yang bernama battlefire. silahkan di download, project ini bebas untuk diedit dan digunakan untuk belajar.
Algoritma Yang Dipakai Dalam Game Ini
algoritma yang dipakai game battle fire ini namanya forward chaining.
apaan tuh forward chaining?? forward chaining adalah kumpulan dari statement IF yang berantai, outputnya tergantung dari output sebelumnya . kepintaran algoritma ini adalah, AI mengecek parameter-parameter tertentu sebelum melakukan aksinya :
1. jika waktu=10 maka AI akan mengecek level
2. jika level = sulit maka AI akan mengecek kondisi pemain
3. jika kondisi pemain = berdiri maka AI akan menembak
4. jika AI menembak maka pemain akan berkurang lifenya
disitu forward chainingnya, jadi output akhirnya tergantung dari output2 sebelumnya.
semogaa bermanfaat
28 komentar :
kak boleh minta link download scriptnya ngga ?
permisi ka, maaf ka, boleh minta koding nya ga buat belajar implementasiin materi2 nya? kalo boleh tolong dikirim ke yusnanmaulanaridwan@gmail.com ya kak, soalnya ga bisa didownload kak file.spj nya, terimakasih sebelumnya ka :)
ka mau tanya nih, gambarnya itu ditaruh di folder mana ya ? terima kasih
gambarnya (.bmp) ditaro satu folder aja sama kodingan prolognya (.spj), jadi ntar pas import gambar tinggal tulis nama file gambarnya aja
contoh : G_Gambar1 is bitmap_image("Gambar1.bmp",_),
Assalamu'alaikum,, ka,,, mohon maaf, tolong kirimin full script nya ke email saya
very321113@gmail.com
ocee
ka, saya juga mau minta dong full scriptnya, tolong kirimin email ke zzz.fariez@gmail.com ya ka.. terima kasih..
udaah
kak, kalo mau pakein bar buat ngurangin darah gimana ya kodingannya? saya bingung ._.
kalo gw kepikirannya gini nih, misalnya tentaranya mati dalam 4 hit.
bikin gambar 1 bar darah = []
jadi 4 bar darah = [][][][]
taro gambar itu di pojok kanan atas sama pojok kiri atas
misalnya tentara kita ketembak kurangin gambarnya jadi 3 bar, 2 bar, 1 bar, terus mati deh
jadi 3 bar darah = [][][]
jadi 2 bar darah = [][]
jadi 1 bar darah = []
trus mati
pake gambar aja di taro di pojok, setiap tentara nya ketembak hapus satu gambar, gitu.
jadi urutannya :
1. bikin gambar 1 bar darah, lewat paint juga bisa, format gambar .bmp
2. set player_life = 4
3. pada saat inisialisasi taro 4 gambar bar darah di pojok kiri atas [][][][]
4. saat tentara kita ketembak kurangin player_life=player_life-1
5. saat tentara kita ketembak hapus 1 gambar bar darah
6. saat bar darah habis tentara kita kalah
7. lakukan hal yang sama buat tentara musuh
permisi ka sebelumnya saya makasih dulu karena game yang sudah kaka share.
saya mau nanya perhitungan skor yg benar untuk game ini baiknya gimana ya?kalo saya G_score:=(G_life_blue*200)+(G_time), g_life saya jadikan 100. jadi perhitungan score disini dari tinggi ke rendah, bagaimana ya untuk perhitungan skornya dari 0 sampai yang tertinggi ?
ada lagi ka saya sebentar lagi kan mulai sidang dan presentasikan game ini.
itu dalam game AI kaka algoritma apa saja yang digunakan ? misalnya di manual book kaka tidak ada algoritma force atau greedy hanya menggunakan algoritma forward chaining
mohon penjelasannya dari algoritma algoritma dari game ini.
email saya rnd.ajah@gmail.com
udah dikirim lengkap yaa :D
malam ka syam saya juga mau mencoba dan mempelajari full script dari program kaka tolong dikirim lewat email . ini email saya : julioblood@gmail.com
thanks before ka
permisi kak maaf nih boleh minta penjelasan tentang algoritma yg ada di game battle fire ini ga? buat sidang,nih tolong kirim ke email saya aja ya zenexlaruku@gmail.com thanks ya kak
maaf nih kak kok di didownload sih udah masuk ke google drive tapi kagak bisa kebuka.. klo boleh tolong kirim ke email agusherrup@gmail.com makasih ya sblmnya :)
okeee
Kak saya boleh minta penjelasan dari algoritmanya gak kak? Kalo boleh tolong kirimin ke endyyunus@gmail.com
itu udah ada penjelasan algoritmanya, kepintarannya
1. AI bisa mendetksi apakah kita sedang berdiri atau tidak
2. AI bisa diri nunduk diri nunduk untuk memancing kita
kepintarannya make forward chaining
Kak boleh minta kodingan lengkapnya gk ? Buat tugas kuliah,
Klo boleh kirim ke zihar.elmubarak@gmail.com ya kak.
Syukron :)
Link downloadnya ada gan diatas, tinggal di klik aja. linknya ke googledrive
kak syamsul, aku boleh minta contoh game kaka yang ini ga untuk tugas lab. hanya untuk acuan saja ka. terima kasih :)
silahkan, di edit2 juga gpp. link downloadnya ada diatas yaaa
Posting Komentar
Mari berkomentar dengan baik, benar, dan sopan :D