Pada tampilan utama program terdapat beberapa tombol beserta fungsinya masing – masing, yaitu :
- Mulai game : Fungsinya untuk masuk ke game yang kita ingin mainkan.
- Petunjuk : Fungsinya untuk melihat cara bermain dan hal” lain mengenai game.
- Tentang Pembuat Game: Fungsinya untuk melihat profil dari pembuat Game.
- Tambahan Program : Fungsinya untuk melihat program lain buatan Developer.
- Keluar : fungsinya untuk keluar dari game.
Tampilan Saat Game Running pada Tahap 1 (saat memilih START)
Seperti itulah tampilan pada saat kita memulai memainkan game dengan mengklik tombol Start,berikut ini adalah keterangan dari masing” menu :
Menu Bar :
- Mulai Baru : Berfungsi untuk memulai permainan baru dari awal.
- About : Berfungsi untuk melihat mengenai developer.
- Exit : Untuk keluar dari game.
Menu Pada Layar Tampilan
- Button 1 : untuk membuka layar help (bantuan cara bermain)
- Button 2 : Level Amatiran
- Button 3 : Level Normal
- Button 4 : Level Medium
- Button 5 : Level Hard
Segitiga bewarna merah putih adalah Player,sementara segitiga biru adalah musuh. Ketika highscore kita meewati batas tertentu,yakni 10 maka kita akan memasuki tahap berikutnya.
Tampilan Saat Game Running pada Tahap 2
Pada Tampilan diatas, ada beberapa menu yaitu :
- Pilihan => yang berisi menu pilihan new game dan exit
- Level => berisi pilihan level
- Bantuan => berisi menu help
- About => hal – hal mengenai game
Disebelah Kiri,terdapat player yang melawan AI yang ada di sebelah kanan, mereka berdua berlindung dibalik tembok,dan saling membak untuk mengalahkan.
Tampilan Saat Game Running pada Tahap 3
Pada tahap ketiga,player bertarung satu lawan satu dengan AI, yang merupakan Boss dari musuh. Player adalah tentara berbaju hijau yang bila menyerang akan berubah menjadi baju hitam. AI adalah orang berbaju putih yang Nampak seperti seorang samurai. Ketika player menang,itu berarti game ini berhasil diselesaikan.
Cara Bermain dan Aturan ( Rules)
Identifikasi ruang permainan ini dilambangkan dengan sebuah layar utama dan beberapa layar tambahan, dimana layar ini akan menjadi tempat dimana permainan berlangsung. Pemain hanya terdiri dari Player dan Musuh (AI).
Aturan-aturan pada game ini adalah
- Dimainkan oleh dua pemain. Dimana pemain pertama adalah player dan pemain kedua adalah AI.
- Player harus menang di satu tahap untuk maju ke tahap berikutnya.
- Pemain saling menembak untuk menjatuhkan lawan.
- Pemain diberikan 2 macam senjata,yakni senjata biasa (tombol space) dan senjata khusus (tombol q) dengan ketentuan
- Jika menembak dengan senjata biasa maka score ditambah Satu
- Jika menembak dengan senjata khusus maka score dikurangi Satu
- Player akan kalah apabila terkena serangan (tembakan) dari musuh atau bertabrakan dengan player lain.
- Score dari player akan dihitung untuk menentukan high score.
Pada tahap 2 :
- Player dan AI saling menembak dalam jangka waktu yang disediakan
- Ketika waktu habis akan dihitung sisa nyawa yang tersisa,dan nyawa yang paling banyak yang menjadi pemenangnya.
Pada tahap 3 :
- Player dan AI berhadapan satu lawan satu dengan saling memukul,setiap pukulan berbeda – beda efek yang ditimbulkannya,serangan khusus mempunyai efek pengurang nyawa yang lebih banyak.
- Ketika salah satu ada yang kehabisan nyawa,maka yang lainnya menjadi juara
- Ketika player menyelesaikan ketiga buah tahap,maka player dinyatakan menang.
Tampilan pada saat telah menyelesaikan 3 tahap
Konsep AI (Algoritma)
Kecerdasan buatan dalam game tank ini terletak pada ketika musuh mampu membaca pergerakan player dengan menembakkan tembakan dengan tujuan untuk mengalahkan player. Disisi lain player harus menghindari tembakan dan menambah score setinggi mungkin.
Taktik permainan diperlukan player agar bias menghindari tembakan dan menembak musuh dengan tepat untuk mendapatkan hasil skor yang maksimal. Kecerdasan buatan merupakan studi yang mengupayakan komputer berfiki cerdas . Suatu proses yang menggunakan alat bantu ( tools ) secara mekanik dapat melaksanakan serangkaian kejadian dengan menggunakan pemikiran atau kecerdasan yang seperti dimiliki oleh manusia.
Komputer berpikir hanya dengan perhitungan, komputer tidak mempunyai intuisi yang menggunakan perasaan. Sebagai gantinya, komputer mempunyai daya perhitungan yang jauh lebih besar daripada manusia. Ketika diberikan sebuah posisi tertentu, sama seperti manusia komputer juga melakukan perhitungan simulasi permainan untuk valid moves yang tersedia. Komputer memperhitungkan apabila koordinat dari posisi player memungkinkan player untuk ditembak ,maka AI akan menembakkan senjatanya. Seperti itu lah cara kerja AI yang ada di gamenya.
Algoritma yang digunakan dalame game ini adalah :
Algoritma Brute force
Brute force merupakan pendekatan langsung untuk memecahkan suatu masalah yang biasanya didasarkan pada pernyataan masalah dan definisi konsep yang dilibatkan. Algoritma brute force cenderung membabi buta,mencoba semua kemungkinan,sederhana /simple. Karakteristik algoritma brute force :
- Tidak cerdas & tidak efisien (mangkus)
- Karena membutuhkan jumlah langkah yang besar
- Lebih cocok untuk masalah kecil
- Karena algoritma ini sederhana dan implementasinya mudah
- Bisa menyelesaikan semua masalah
- Walaupun tidak efisien,ada beberapa kasus yang hanya bisa diselesaikan dengan metode ini,contohnya adalah mencari elemen terbesar pada suatu rangkaian angka.
Pada game ini,penggunaan algoritma brute force digunakan pada saat penghitungan high score,dimana untuk mendapatkan high score dilakukan perhitungan satu persatu sesuai dengan nilai yang didapatkan dengan menembak jatuh lawan baik dengan senjata biasa (+1 score) ataupun dengan senjata khusus (-1 score).
Algoritma AI
Algoritma Artificial Intelligence (AI) adalah sesuatu buatan/tiruan yang cerdas. Cerdasnya yakni kepandaiannya dalam berfikir selayaknya seperti manusia dalam menyelesaikan suatu masalah, mengambil keputusan dan melakukan tindakan. Pada system ini pengetahuannya berasal dari pengetahuan manusia dan sumber penambahan informasi lain seperti buku, dokumentasi, dan data-data refensi yang mendukung pada basis pengetahuan AI.
Pembuatan musuh yang bias menembak dan membaca pergerakan player pada game ini menggunakan algoritma AI.
Forward Chaining
Karena dalam pengambilan keputusan tindakan digunakan aturan” berdasarkan timer yang berjalan,maka algoritma forward chaining digunakan pada tahap 2.
Algoritma DFS
DFS berarti semua simpul yang bertetangga dengannya telah dikunjungi, pencarian dirunut-balik (backtrack) ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul w yang belum dikunjungi. Dalam penentuan pergerakan pemain pada Tahap 3 digunakan algoritma DFS untuk menentukan respon mana yang harus diambil oleh AI.
Ini adalah sedikit contoh listing programnya
/*=================================================================
* Game Title : Tank
* Programing Language : Prolog
* Developer : Yongki Mayongga, 3IA06
* From : University of Gunadarma
*
=================================================================
*/
%==================================================================
%--------------------Dekalrasi
Variabel ----------------------------
%==================================================================
?-
G_wall1 is bitmap_image("gambar//tank3.bmp",_),
G_wall2 is bitmap_image("gambar//turquoise2.bmp",_),
G_wall3 is bitmap_image("gambar//white.bmp",_),
G_HighScore := 0, G_LastShipWay := 0,
G_player_color is brush("gambar//G_Cap.bmp"),
G_enemy_color:=brush(rgb(0,128,255)),
G_Red:=brush(rgb(255,100,100)),
G_waktu1:=11,
G_aksi_red:=0,
G_aksi_blue:=0,
G_level:=1,
G_life_red:=99,
G_life_blue:=99,
G_zero:=0,
G_Tentaranembak1 is bitmap_image("tembak\\Tentaranembak1.bmp",_),
G_Tentaranunduk1 is bitmap_image("tembak\\Tentaranunduk1.bmp",_),
G_Tentaraketembak1 is bitmap_image("tembak\\Tentaraketembak1.bmp",_),
G_Tentaranembak2 is bitmap_image("tembak\\Tentaranembak2.bmp",_),
G_Tentaranunduk2 is bitmap_image("tembak\\Tentaranunduk2.bmp",_),
G_Tentaraketembak2 is bitmap_image("tembak\\Tentaraketembak2.bmp",_),
G_Pelurubiru is bitmap_image("tembak\\pelurubiru.bmp",_),
G_Pelurumerah is bitmap_image("tembak\\pelurumerah.bmp",_),
G_Dorblue is bitmap_image("tembak\\dor_blue.bmp",_),
G_Dorred is bitmap_image("tembak\\dor_red.bmp",_),
G_Tembok is bitmap_image("tembak\\Tembok.bmp",_),
G_Timeup is bitmap_image("tembak\\timeup.bmp",_),
G_white is bitmap_image("tembak\\white.bmp",_),
G_timeblock is bitmap_image("tembak\\timeblock.bmp",_),
G_cleantime is bitmap_image("tembak\\cleantimeup.bmp",_),
G_background is bitmap_image("bruce\\latar1.bmp",_), G_char1 is bitmap_image("bruce\\char1.bmp",_),
G_char2 is bitmap_image("bruce\\char2.bmp",_),
G_char1pukul is bitmap_image("bruce\\char1-1.bmp",_), G_char1tendang is bitmap_image("bruce\\char1-2.bmp",_),
G_char2pukul is bitmap_image("bruce\\char2-1.bmp",_),G_char2tendang is bitmap_image("bruce\\char2-2.bmp",_),G_char1ulti is bitmap_image("bruce\\char1-3.bmp",_),
G_x1:=30,
G_y1:=350,
G_x1lawan:=680,
G_y1lawan:=355,
G_waktu:=40,
G_darah1:=320,
G_darah2:=300,
G_jarak:=0,
G_level:=1,
%==================================================================
%----------------------Window
Utama--------------------------------
%==================================================================
window(G_form1,_,win_func(_),"Yongki
Mayongga",150,50,1024,600).
win_func(paint):-
draw_bitmap(0,0,G_wall1,_,_),
button(_,_,mulai(_),"Mulai
Game",720,50,250,40),
button(_,_,help(_),"Petunjuk",720,100,250,40),
button(_,_,about(_),"Tentang
Pembuat Game",720,150,250,40),
button(_,_,other(_),"Tambahan
Program",720,200,250,40),
button(_,_,keluar0(_),"Keluar",720,250,250,40),
fail.
%==================================================================
%--------------------Fungsi Dari
Button----------------------------
%==================================================================
other(press):-
close_window(G_form1),
execute("INFIXTOPOSTFIX.exe").
keluar0(press):-
beep("sound//crow.wav"),
close_window(G_form1).
keluar(press):-
beep("sound//crow.wav"),
close_window(G_form9).
keluar1(press):-
beep("sound//crow.wav"),
close_window(G_form10).
about(press):-
message("Sekilas
Tentang Pembuat Game ", "Game Pengantar Kecerdasan Buatan - LabTI
\nUniversitas Gunadarma\nPembuat:
Yongki Mayongga\nKelas: 3IA06",i),
text_out(10, 10,
"=========================="),
text_out(10, 30,
"===Laboratorium Informatika==="),
text_out(10, 50,
"===Universitas Gunadarma===="),
text_out(10, 70,
"==========================="),
text_out(10, 90,
"======Yongki Mayongga======"),
text_out(10, 110, "======3IA06
/ 57411570======"),
text_out(10, 125,
"==========================").
help(press):-
message("Sekilas
Tentang Game ",
"\tGame ini bertujuan untuk
mengalahkan lawan
\tdengan menembak dan menghancurkan
lawan\n\tDapatkan Highscore tertinggi ^^.",i).
%==================================================================
%--------------------Fungsi
Button Mulai---------------------------
%==================================================================
%------------------------Window
Game-------------------------------
%==================================================================
mulai(press):-
window(G_form9,_,tembak(_),"Menu
Game",100, 100, 310, 310),
set_active_window(G_form9),
close_window(G_form1).
tembak(init):-
animate(_, _, fail(_),
"video//bz.avi", 0, 0),
menu( normal, _, _, utama(_), "&Halaman Utama"),
menu( normal, _, _, start(_), "&Start"),
%menu( pop_up, _, _,
menu_level(_), "&Level"),
menu( normal, _, _, help(_), "&Help"),
menu( normal, _, _, keluar(_), "&Exit"),
fail.
menu_level(init):-
menu( normal, _, _, level_easy(_), "Tahap I"),
menu( normal, _, _, level_medium(_), "Tahap II"),
menu( normal, _, _, level_hard(_), "Final
Stage"),
fail.
start(press):-
message("Cara Bermain
Game ",
"\tPilihlah level yang
diinginkan
\tdengan menekan tombol 2,3,4,5
\ttekan 1 untuk melihat
tombol",!),
level_easy(_),
fail.
help(press):-
message("Sekilas
Tentang Game ",
"\tGame ini bertujuan untuk
mengalahkan lawan
\tdengan menembak dan menghancurkan
lawan\n\t^^.",i).
utama(press):-
message("Back", "Kembali Ke
Menu Utama",!),
close_window(G_form9),
window(G_form1,_,win_func(_),"Yongki
Mayongga",150,50,1024,600).
set_active_window(G_form1),
fail.
level_easy(press):-
close_window(G_form9),
window(G_form3,_,yongki(_),"Tank",100, 100, 490, 450).
set_active_window(G_form3).
mantap sekali gaan :D
BalasHapusapakah dalam game jika tidak ada artificial intelligence harus memakai algoritma atau tidak ?
BalasHapussaya membuat game dengan kondisi dengan contoh : target 8, waktu 20 detik, jadi kalau belum mencapai target dan waktu telah habis akan game over, dan kalau target sudah terpenuhi dan waktu masih tersisa maka akan menang...
game saya itu apakah harus pakai algoritma kang ?
bang boleh minta listing programnya yg full?
BalasHapusbang kalo boleh minta listing program yang full, tolong kirim ke faris6593@gmail.com ya baang ^^
BalasHapusmakasih.. :))
Komentar ini telah dihapus oleh pengarang.
BalasHapuslah lo to
Hapuswindow(G_splash,_,splash_start(_),"Splash Screen",0,0,650,350),
HapusPen(10,rgb(0,162,232)),
brush(rgb(0,162,232)),
rect(0,0,650,350),
Pen(10,rgb(255,255,255)),
line(200,150,400,150).
splash_start(init):-
G_batas := 0,
waktu is set_timer(_,0.1,fungsi_timer).
fungsi_timer(end):-
text_out(250,125,print("Loading : " + G_batas + "%")),
Pen(6,rgb(237,28,36)),
line(200,150,200+(G_batas*2),150),
G_batas := G_batas + 1,
(G_batas >= 100,
close_window(_),
%Membuka menu utama
window( G_menu, _, win_funtc(_), "Menu Utama",0,0,650,350)).
tuh to codingan buat splash screen gw yang ada garis loadingnya
beep("wav") itu gk bisa jalan sembari update_window(_) ya gan ?
BalasHapusnice artikel, ana juga mahasiswa gundar lg buat ujian ini wkwkwk
BalasHapus