Matches One Piece
Wafiddin Naufal
Jurusan Teknik
Informatika, Fakultas Teknologi Industri
Universitas Gunadarma
PENDAHULUAN
Game merupakan
jenis hiburan yang disukai oleh semua orang di semua usia, baik anak-anak
sampai dewasa ataupun tua. Selain digunakan untuk menghilangkan kepenatan dalam
beraktivitas, sebuah permainan juga dapat berfungsi untuk melatih pola pikir
seseorang untuk mencari solusi memecahkan suatu permasalahan yang ada di sebuah
game. Sekarang banyak permainan baru yang memanfaatkan teknologi modern dalam
pembuatannya dan penggunaannya.
Banyaknya
jumlah dari jenis permainan yang muncul, menyebabkan adanya pengelompokan genre
dari permainan. Genre permainan juga bertambah mengikuti perkembangan jaman,
ada genre action games, strategy games, role playing games, sport games,
vehicle simulations, construction and management simulations, adventure games,
artificial life and puzzle, dan online gaming.
Dari beberapa
genre permainan yang telah disebutkan tadi, Saya tertarik dengan genre strategy
game yaitu Matches One Piece. Permainan Matches One Piece ini merupakan
permainan sederhana yang dikembangkan dari permainan Matches pada Strawberry
Prolog.
Permainan ini melatih dan mengasah otak user untuk berpikir mengenai strategy
yang digunakan agar dapat mengalahkan komputer. Komputer yang merupakan AI
bertugas untuk menyulitkan kita dalam memenangkan permainan Matches One Piece. Komputer
juga diberi kemampuan untuk memenangkan permainan. Ai yang saya buat memiliki
tingkat kesulitan (level) yang berbeda-beda seperti Easy Medium dan Hard.
PEMBAHASAN
Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancis programmation en logique(pemrograman logika). Bahasa
ini diciptakan oleh Alain Colmerauer dan Robert Kowalskisekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian
perintah untuk dijalankankomputer.
-
Permainan
Matches One Piece
Matches
One Piece ini merupakan sebuah permainan yang telah di kembangkan dari
permainan matches yang ada pada Strawberry Prolog, di dalam permainan matches
yang sebenarnya adalah objek korek api yang terdiri dari 1 sampai 15 korek api
dan tidak ada tingkatanya, akan tetapi Matches One Piece ini saya menggunakan
objek dari gambar atau karakter anime yang ada di One Piece yang terdiri dari
beberapa objek sesuai dengan tingkatannya.
-
Keadaan
awal (Initial state)
Matches ini memiliki splash screen di awal
pada saat kita menjalankan programnya. Pada
tampilan awal saat permainan dijalankan User akan melihat interface Splash
Screen Selanjutnya pada saat loading screen selesai maka akan tampil sebuah
Menu Utama yang bernama “Welcome to One Piece” yang berisi button – button yakni Play, dan Exit. Pada saat berada di window permainan terdapat 4 buah Menu Bar yaitu :
a)
Start Level
digunakan untuk memilih level yang terdiri dari 3 tingkatan yakni ada easy, medium, dan hard yang objeknya
berbeda beda jumlahnya dan memiliki timer yang berbeda-beda pula.
b)
Options
digunakan untuk merubah pengaturan yang mana jika user ingin menang dan siapakah
yang akan jalan terlebih dahulu
c)
Rules digunakan
untuk mengetahui aturan dari permainan game ini
d)
Back ini
digunakan untuk kembali ke menu utama
-
Goals
Tujuan atau goals dari game ini adalah untuk mencari siapa yang terlebih dahulu selesai dan siapa
yang terakhir selesai mengambil objeknya, maksudnya adalah tujuan goal disini
ada 2 yakni :
1.
jika tidak memilih option “Yang Terakhir
Menang” atau langsung memilih level saja tanpa memilih option mana yang akan
digunakan maka yang mengambil terakhir yang akan kalah
2.
jika memilih option terlebih dahulu dan
memilih “Yang Terakhir Menang” maka yang mengambil objek terakhir adalah
pemenangnya.
-
Aturan
permainan Matches One Piece
1.
Pilih level dengan cara klik menu “Start
Level”, Kemudian pilih level sesuai yang kalian mau:
• “Easy”
waktunya 30 detik
• “Medium”
waktunya 25 detik
• “Hard”
waktunya 20 detik
2.
Pilih option untuk mengatur siapa yang jalan terlebih
dahulu dan siapa yang akan menang,dengan cara klik Option lalu pilih:
• Pilih
Komputer Pertama Jalan
• Pilih Yang
Terakhir Menang
• Atau pilih
kedua-duanya
Perintah
ini digunakan untuk menentukan siapa yang jalan terlebih dahulu, apakah player
atau AI, kemudian siapa yang akan menang bisa di tentukan dengan cara
menceklisnya.
-
Tahap
pembuatan
Pada tahap pembuatan permainan ini menggunakan
game engine Strawberry Prolog, lalu masukkan source code pada Strawberry Prolog
seperti berikut :
Syntaks
dibawah ini digunakan untuk menampilkan gambar loading, background, icon,
rules, dan backsound. Untuk gambar berekstensi .bmp dan untuk backsound
berekstensi .Mp3.
?-
G_Comp_First=0,
G_Take_Last=0,
G_level=0,
G_scorePlayer=0,
G_scoreAI=0,
G_loading is bitmap_image("one
piece/onepiece1.bmp",_),
G_pilihan is bitmap_image("one
piece/onepiece2.bmp",_),
G_background is bitmap_image("one
piece/onepiece8.bmp",_),
G_icon is bitmap_image("one
piece/lambang1.bmp","one piece/lambang1.bmp"),
G_clean1 is bitmap_image("one
piece/clean3.bmp",_),
G_rules is bitmap_image("one
piece/onepiece6.bmp",_),
G_x is server("MediaPlayer.MediaPlayer.1"),
Syntaks
dibawah digunakan untuk membuat button play pada saat kita berada di home.
%Button Play
play(press):-
close_window(G_splash),
G_x.'Open'("one
piece/one_piece_ost_2.wav"),
pen(0,0),
window(G_func,_,win_func(_),"One Piece",200,100,970,600),
update_window(_).
Syntaks
dibawah digunakan untuk membuat tombol exit.
%Button Exit
exit(press):-
ask.
ask:-
yes_no("Exit", "Are You
Sure ?", ?),
!, message("Yes", "Thank
You",!),
beep(G_bye),
close_window(G_splash).
end.
ask:-
message("No", "Let's
Play", !).
win_splash(close):-
execute("hilang.bat"),
close_window(G_splash).
Syntax
dibawah digunakan untuk membuat pilihan menu yang terdiri atas Easy, Medium,
Hard.
%Menu Start Level
menu_start(init):-
menu(normal, _, _, menu_easy(_),
"&Easy"),
menu(normal, _, _, menu_Medium(_),
"&Medium"),
menu(normal, _, _, menu_Hard(_),
"&Hard"),
G_timer is set_timer(_,1,time_func).
time_func(end):-
G_waktu2:=G_waktu2-1,
E:=printq(G_waktu2),
font(10,20,"Calibri"),
text_out(20,110,E),
(G_waktu2=9->
draw_bitmap(20,110,G_clean1,_,_),
D:=printq(G_waktu2),
font(10,20,"Calibri"),
text_out(20,110,D)),
G_waktu2=0->
G_scoreAI := G_scoreAI + 1,
G_scorePlayer := G_scorePlayer + 0,
G_waktu2:=kill_timer(_,G_timer),
beep(G_kalah),
message("Warning!!","Out of
Time",i),
message("Oops","You Are
Looser !!",s),
draw_bitmap(20,110,G_tutup,_,_),
draw_bitmap(20,110,G_clean1,_,_),
fail.
Syntax
dibawah digunakan untuk menampilkan Background dan papan score pada saat
bermain.
%Background dan papan score
win_func(paint):-
draw_bitmap(0,0,G_background,_,_),
font(8,20,"Algerian"),
text_out(20, 20, print("Score")),
text_out(20, 50, print("You : " + G_scorePlayer)),
text_out(20, 80, print("Computer :
" + G_scoreAI)),
pos(Pos),
el(Pos,El,N),
for(I,1,El),
X is 70+100*N,
Y is 500-70*I, %530= posisi
point, 45=jarak%
draw_bitmap(X,Y,G_icon,_,_),
fail.
Syntax
dibawah digunakan untuk deklarasi area mouse.
%Mouse
win_func(mouse_click(X,Y)):-
X1 is (X- 60)//100,
Y1 is (520-Y)//45,
X1=<8,X>=40,
pos(Pos),
el(Pos,El,X1),
El>Y1,
replace(Pos2, Pos, Y1, X1),
(Pos2=[0,0,0,0,0,0,0,0]->
set(pos(Pos2)),
end(0)
else
wait(0.5),
play(Pos3, Pos2),
(Pos3=[0,0,0,0,0,0,0,0]->
end(1)),
set(pos(Pos3))),
update_window(_).
win_func(mouse_click(X,Y)):-
beep.
Syntax
dibawah merupakan inti dari AI pada permainan Matches One Piece ini.
%AI
play(Pos3, Pos2):-
G_Take_Last=0,
count_successes(not_trivial(Pos2))<G_level,
find_max(Pos2,Max,N),
New is (Max>1,count_successes(not_empty(Pos2)) mod 2=:=1 -> 1 else 0),
replace(Pos3, Pos2, New, N).
play(Pos3, Pos2):-
el(Pos2,A, N),
R:=0,
add_xor(R,Pos2,N),
R<A,
replace(Pos3, Pos2, R, N).
play(Pos3, Pos2):-
find_max(Pos2,Max,N),
Max2 is (Max>1, random(2)=:=0 ->
Max - 2
else
Max - 1),
replace(Pos3, Pos2, Max2,
N).
not_empty(Pos):-
el(Pos,A, _),
A>0.
not_trivial(Pos):-
el(Pos,A, _),
A>1.
el([H|T],H,0).
el([H|T],El,N):-
el(T,El,N1),
N is N1+1.
replace([H|T],[_|T],H,0).
replace([H|T2],[H|T],El,N):-
replace(T2,T,El,N1),
N is N1+1.
find_max([H],H,0).
find_max([H|T],A, N) :-
find_max(T,A1,N1),
(A1<H->
A is H,
N is 0
else
A is A1,
N is N1+1).
add_xor(_,[],_):-!.
add_xor(R,[H|T],0):- !,
add_xor(R, T, -1).
add_xor(R,[H|T],N):-
N1 is N- 1,
R:=R xor H,
add_xor(R, T, N1).
PENUTUP
Game Matches One Piece ini adalah sebuah game yang berbasis AI (Artificial
Intelligence) atau kecerdasan
buatan yang mana game ini membutuhkan proses pemikiran atau melatih berfikir
dan mengambil keputusan yang tepat agar user bisa mengalahkan AI,
karena di game ini di tambahkan program
tingkat kesulitan sehingga AI dapat berfikir untuk mengambil keputusan yang
tepat juga dalam melawan user untuk mengambil objek yang ada,
yang tujuannya untuk mengalahkan user,
sehingga game ini dapat melatih kita cara
berfikir yang tepat dan melatih juga untuk ketepatan waktu,
karena di game matches one piece ini di berikan waktu sesuai tingkatannya sehingga jika
kita bisa memanage waktu agar tidak habis waktunya dan kita di latih berfikir
cepat dan tanggap dalam menyelesaikan tantangannya, sehingga prinsip yang ada di game ini dan makna yang
ada di game ini dapat di terapkan di kehidupan sehari-hari dalam menyelesaikan masalah,
mau itu projek yang di kasih jangka waktu
atau deadline ataupun masalah yang lainnya.
Permainan ini dibuat menggunakan game engine
Strawberry Prolog untuk melengkapi tugas akhir dari mata kuliah Pengantar
Teknologi Game
Daftar pustaka
1.
http://riskawuni.blogspot.co.id/2011/11/game-matches-pada-strawberry-prolog.html
(diakses pada tanggal 10 Juli 2017)
2.
http://www.kepobro.com/2016/11/modifikasi-game-matches-di-strawberry-prolog.html
(diakses pada tanggal 10 Juli 2017)
3.
http://task-campus.blogspot.co.id/2012/05/algoritma-matches-strawberry-prolog.html
(diakses pada tanggal 10 Juli 2017)
wah keren sekali kak
ReplyDeleteaxis