“ Game Steal”
Penjelasan Konsep Game
Kami akan membuat sebuah game dengan konsep game Matches
yang memakai korek api pada game tersebut ,namun di game yang akan kami buat
memakai ikon gedung bank.
Steal mempunyai arti mencuri, Konsep
permainannya sama seperti game Matches bedanya jika di game Matches mengambil
korek secara bergantian tetapi di game yang kami buat yaitu Steal ,mengambil
gedung banknya. ibaratnya kita sebagai perampok yang ingin merampok bank-bank
tersebut namun ada perampok lain yang beraksi yang merupakan AI dari game
tersebut, aturan mainnya kita jangan sampai mencuri bank yang terakhir tersisa
karena jika kita menjadi pencuri terakhir maka kita akan tertangkap polisi.
dalam game steal ini juga terdapat timer
waktunya maka kita harus cepat-cepat mencuri bank-bank tersebut dengan strategi
yang tepat agar tidak menjadi pencuri terakhir, dan jika waktu habis maka
polisi datang dan dinyatakan game berakhir.
Software Yang
Digunakan
Game
Steal ini menggunakan bahasa pemrograman Prolog. Dan di sini kami menggunakan Strawberry Prolog sebagai program editor.
Alasan kami menggunakan strawberry prolog ini karena menurut kami ini mudah
untuk digunakan.
Cara Pembuatannya
Acuan untuk membuat game “Steal” adalah
pembuatan papan permainannya. Di sini kami menggunakan gambar icon Gedung Bank
yang berukuran 56x60 sebagai pengganti “korek api” pada Matches. Game Steal merupakan Permainan
Mental yang dimainkan seorang pemain
melawan AI komputer. Pada game ini akan menampilkan Bank-bank yang tersusun
dari enam dari setiap levelnya. Game ini akan mengasah otak pemainnya. Pemain
dipaksa untuk menerapkan strategi yang tepat untuk memenangkan game ini.
Permainan ini hanya dapat dimainkan oleh satu pemain, sedangkan Komputer
bertindak sebagai lawan dari pemain.
Untuk membuatnya terlebih dahulu install aplikasi Strawberry
Prolog
jika sudah terinstall ,buka lah aplikasi tersebut
Jika sudah terbuka, klik file lalu pilih new,pilih Prolog
File kemudian klik OK
kemudian akan muncul seperti ini :
Untuk kodingannya ,kami memodifikasi dan mengembangkan dari
game yang sudah disediakan oleh Strawberry Prolog. disini kami mengambil tema
dari game Matches yang sudah dijelaskan sebelumnya.
Untuk membuka gamenya, klik file kemudian open example
klik folder game
kemudian carilah game Matches, lalu klik Open
ini merupakan kodingan dari game Matches
kemudian modifikasilah dan kembangkan kodingannya sesuai
dengan tema konsep yang sudah dijelaskan di atas. ini kodingan yang sudah
dimodifikasi dan dikembangkan sesuai konsep :
LISTING PROGRAM
% Nama Kelompok : Fitra Darmawan (52411910)
Heri Purdiawan (53411333)
% Kelas : 3IA13
% Judul Game : STEAL
?-
G_Comp_First=0,
G_Take_Last=0,
G_icon is bitmap_image("bank.bmp",_),
G_background is bitmap_image("steal.bmp",_),
G_Background2 is bitmap_image("malam.bmp",_),
%*********************************jendela
output********************************
window_n( G_layar1, _, win_func2, "STEAL (mencuri)", 200,200,800,400,_,_,rgb(1,1,1)),
beep("fast.wav").
win_func2(init):-
menu( normal, _, _, menu_start(_), "&Mulai").
menu_start(press) :-
window_n( G_layar2, _, win_func, "STEAL GAME", 200,200,800,400,_,_,rgb(255,255,255)),beep("reload.wav"),
close_window(G_layar1).
%***********************************menu
bar***********************************
win_func(init):-
G_Timer is set_timer(_,1,time_func),
menu(pop_up,_,_,game(_),"Menu"),
menu(pop_up,_,_,level(_),"Level"),
menu(normal,_,_,about(_),"Nama Kelompok"),
menu(normal,_,_,rule(_),"Aturan Main").
win_func2(paint):-
draw_bitmap(0,0,G_background,_,_),
pos(Pos),
el(Pos,E1,N),
for(I,1,E1).
win_func(paint):-
draw_bitmap(0,0,G_Background2,_,_),
pos(Pos),
el(Pos,El,N),
for(I,1,El),
%jarak antar icon
X is 75+100*N,
Y is 280-50*I,
%untuk bentuk item
draw_bitmap(X,Y,G_icon,_,_),
fail.
%*******************************pop-up dari
Menu********************************
game(init):-
menu(normal,_,_,new_game(_),"Mulai"),
menu(normal,_,_,exit(_),"Keluar").
%*******************************New Game********************************
new_game(press):-
message("MAU
MAIN?","
Silahkan Pilih Level", !).
%*************************************Exit******************************************
exit(press) :-
beep,
( yes_no("Keluar","Anda ingin keluar??", !)),
close_window(_).
%********************************Level***************************************
level(init):-
menu(normal,_,_,fun(_),"Mudah"),
menu(normal,_,_,normal(_),"Normal"),
menu(normal,_,_,hard(_),"Sulit").
fun(press) :-
G_Waktu:=10,
(G_Comp_First=0->
set(pos([0,2,3,2,3,0]))
else
Pos=[0,2,3,2,3,0],
N is 2*random(3),
el(Pos,A,N),
A2 is A - 1,
replace(Pos2, Pos, A2, N),
set(pos(Pos2))),
update_window(_).
normal(press) :-
G_Waktu:=10,
(G_Comp_First=0->
set(pos([2,3,4,3,2]))
else
Pos=[2,3,4,3,2],
N is 2*random(3),
el(Pos,A, N),
A2 is A - 1,
replace(Pos2, Pos, A2, N),
set(pos(Pos2))),
update_window(_).
hard(press) :-
G_Waktu:=5,
(G_Comp_First=0->
set(pos([3,4,5,5,4,3]))
else
Pos=[3,4,5,5,4,3],
N is 2*random(3),
el(Pos,A, N),
A2 is A - 1,
replace(Pos2, Pos, A2, N),
set(pos(Pos2))),
update_window(_).
time_func(end):- %waktu
G_Waktu=0->
G_Waktu:=0
else
G_Waktu:=G_Waktu-1,
E:= printq(G_Waktu),
font(15,50,"DIGIFACEWIDE"),
text_out(380,20,E),
(G_Waktu=0->
message("Polisi","Anda Tertangkap!",i),beep("polisi.wav"),
write("OK"),
message("Coba Lagi","untuk bermain lagi pilih game baru atau
pilih level",i),write("OK")).
%************************************Nama Kelompok*****************************************
about(press) :-
message("Nama Kelompok", "Fitra Darmawan(52411910) , Heri Purdiawan(53411333) 3IA13 - Universitas Gunadarma
-", i).
%************************************Aturan
Main*****************************************
rule(press) :-
message("Aturan Main","Jangan menjadi pencuri terakhir,jika anda mencuri terakhir anda akan
tertangkap polisi !", i).
%*************************program
inti************************************************
win_func(mouse_click(X,Y)):-
X1 is (X- 50)//100,
Y1 is (290-Y)//50,
X1=<5,X>=40,
pos(Pos),
el(Pos,El,X1),
El>Y1,
replace(Pos2, Pos, Y1, X1),
beep("pistol.wav"),
(Pos2=[0,0,0,0,0,0]->
set(pos(Pos2)),
end(0)
else
wait(0.5),
beep("ai.wav"),
play(Pos3, Pos2),
(Pos3=[0,0,0,0,0,0]->
end(1)),
set(pos(Pos3))),
update_window(_).
win_func(mouse_click(X,Y)):-
beep.
play(Pos3, Pos2):-
count_successes(not_trivial(Pos2))<2,
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).
%************************************kondisi
menang-kalah**********************************
end(Flag):-
Flag=G_Take_Last->
message("Polisi","Anda Tertangkap!",i),beep("polisi.wav")
else
message("Selamat!","Anda Menang",!),beep("fast.wav").
Kemudian save lah dengan nama Steal.
jika sudah disave lalu jalankanlah game tersebut dengan
menekan F5 atau mengklik seperti gambar ini :
Jika sudah di run maka game Steal sudah siap dimainkan :
Penjelasan Kodingannya
G_icon is bitmap_image("bank.bmp",_),
Untuk Mengganti Icon di game, game
steal memakai gambar Gedung Bank dengan nama bank berformat Bitmap atau bmp. Gambar
bmpnya harus satu lokasi dengan project gamenya.
G_background is bitmap_image("steal.bmp",_),
Untuk membuat sflash scrren di
game, game steal memakai gambar Perampok berpistol hari dengan nama
stealberformat Bitmap atau bmp. Gambar bmpnya harus satu lokasi dengan project
gamenya. Ini adalah sflash screen awal.
G_Background2 is
bitmap_image("malam.bmp",_),
Untuk Mengganti IBackground di
game, game steal memakai gambar Gedung dimalam hari dengan nama malam berformat
Bitmap atau bmp. Gambar bmpnya harus satu lokasi dengan project gamenya. Ini
adalah background utama saat game dimainkan.
window_n( G_layar1, _, win_func2,
"STEAL (mencuri)", 200,200,800,400,_,_,rgb(1,1,1)),
Untuk
menampilkan sflash screen dengan nama
Steal (mencuri).
beep("fast.wav").
Untuk
memutar sebuah lagu apabila perintah dilakukan.
fast
merupakan nama lagu yang akan diputar yang berformat wav,lagu tersebut harus satu lokasi dengan project
gamennya
win_func2(paint):-
draw_bitmap(0,0,G_background,_,_),
Untuk menampilkan gambar yang
kita masukan di backgound di layar1 yang merupakan latar sflash screen awal.
win_func(paint):-
draw_bitmap(0,0,G_Background2,_,_),
Untuk menampilkan gambar yang
kita masukan di backgound 2 di layar2 yang merupakan latar utama saat game
dimainkan.
fun(press) :-
G_Waktu:=10,
(G_Comp_First=0->
set(pos([0,2,3,2,3,0]))
else
Pos=[0,2,3,2,3,0],
N is 2*random(3),
el(Pos,A,N),
A2 is A - 1,
replace(Pos2, Pos, A2, N),
set(pos(Pos2))),
update_window(_).
Ini
merupakan kodingan level mudah, waktu pada level mudah diberikan 10 detik.
posisi
banknya terdapat 2 bank,3 bank, 2 bank,
3 bank, maka total bank pada l evel
mudah adalah 10 bank. Untuk penjelasannya kodingan level selanjutnya sama saja
,hanya diubah dan disesuiakan dengan tingkat kesulitan levelnya.
Petunjuk Bermain
1. Pada sflash screen awal klik mulai untuk
memulai permainan :
2. untuk mulai
pilih menu :
jika memilih menu
lalu mulai akan muncul tampillan seperti berikut:
kesimpulannya
adalah jika ingin mulai bermain kita harus memilih Level terlebih dahulu.
3. untuk cara
bermain, kita pilih Level untuk
memulai permainan dan memilih tingkat kesulitan seperti tampilan berikut :
4. jika memilih level Mudah ,maka tampilannya seperti
ini :
5. Jika Memilil level Normal ,maka tampilannya seperti berikut :
Demikianlah game yang kami buat, semoga bermanfaat bagi yang
membacanya. Terima Kasih.
Nama Kelompok : Fitra
Darmawan (52411910)
Heri Purdiawan (53411333)
Kelas : 3IA13