BAHASA
DAN PROGRAM EDITOR :
Permainan ini menggunakan bahasa
pemrograman Prolog. Dan di sini penulis
menggunakan Strawberry Prolog sebagai program editor. Alasan penulis
menggunakan strawberry prolog ini karena menurut penulis ini mudah untuk
digunakan.
INITIAL STATE :
Initial State yang digunakan sebagai acuan untuk membuat program Click Clack Away adalah pembuatan papan permainannya.
Di sini penulis menggunakan gambar Apel yang berukuran 56x60 sebagai pengganti
“korek api”. Game Click Clack Away merupakan Permainan
Mental yang dimainkan seorang pemain melawan AI komputer. Pada game
ini akan menampilkan 16 spot/apel yang tersusun dari enam baris dan kolomnya
menyusun meningkat. 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.
RULES :
Aturan
main (Rules) yang digunakan pada games Click
Clack Away Strawberry Prolog ini
adalah sebagai berikut :
1.
User memulai permainannya terlebih dahulu, dan user
menentukan apel mana yang akan diambil untuk memulai permainan. User diberi
kebebasan untuk memilih apel mana saja yang akan diambil selama berada di papan
permainan.
2.
Komputer diberi pembelajaran untuk menghalangi jalan
user untuk mencapai Goal (Tujuan).
3.
Komputer juga diberi pembelajaran untuk memenangkan
games ini (mengambil lebih dahulu dari user) .
GOAL :
Goal (tujuan) untuk menyelesaikan
games Click Clack Away Strawberry Prolog
ini adalah mengambil lebih dahulu dari lawan kita, yang dimana lawan kita ialah
Komputer. Banyak sekali Goal (tujuan) yang bisa terbentuk, salah satunya
sebagai berikut :
(GOAL)
(GOAL)
AI :
Kecerdasan buatan
atau yang sering disebut dengan AI pada game ini terletak pada computer yang
akan bertindak sebagai lawan. Komputer akan selalu berusaha mengalahkan user. Komputer
dapat menyusun strateginya sendiri agar menjadi pemenang.
BATAS USIA :
Permainan ini dapat dimainkan untuk semua usia. Karena
permainan ini mengasah ketrampilan otak dengan menyusun strategi sesuai dengan
tujuan yang telah ditentukan sebelumnya.
INSTALASI
STRAWBERRY PROLOG :
1. Sebaiknya tutup semua program
lain yang sedang dibuka.
Anda dapat menginstall Strawberry Prolog dengan
dua cara yaitu dengan langsung mengakses direktori source program Strawberry
Prolog di CDROM.
2. Pada jendela konfirmasi yang
muncul, klik OK untuk melanjutkan proses penginstallan.
3. Kemudian anda diminta untuk
menentukan lokasi dimana anda akan meletakkan file installan (destination
location). Jika anda tidak menentukan destination location maka
secara otomatis lokasi penginstallan ditempatkan di C:\Program Files\Strawberry
Prolog. Proses penginstallan akan segera dilaksanakan jika anda telah
mengklik Unzip button.
4. Selanjutnya proses
penginstallan dimulai. Silakan tunggu hingga proses penginstallan selesai.
Jika proses penginstalan telah selesai maka
muncul jendela konfirmasi "310 file(s) Unzipped Successfully".
Petunjuk Bermain Click Clack Away Strawberry Prolog :
1. Sebaiknya tutup semua program lain yang sedang dibuka.
Terlebih dahulu anda harus menginstall Strawberry Prolog.
2. Jika program Strawberry Prolog sudah terinstall maka buka
direktori Project
Prolog seperti tampilan berikut :
Jika anda tidak mendapatkan tampilan seperti di atas maka anda harus mengketikkan listing program Click Clack Away tersebut di Strawberry Prolog.
3. Anda selanjutnya akan menemukan tampilan berikut :
4. untuk cara bermain, kita pilih New Game untuk
bermain baru seperti tampilan berikut :
5. Kemudian kita merancang strategi untuk menang dengan cara
klik apel keempat baris keempat sebanyak empat apel.
6. Selanjutnya ke step 4 untuk bermain baru.
Kemudian strategi untuk kalah mungkin sama dengan step 5 namun berbeda pada
langkah terakhir yakni dengan mengklik apel kedua baris kedua sebanyak dua apel
sehingga akan muncul pesan bahwa anda kalah “Sorry, try harder!”.
LISTING PROGRAM
Click
Clack Away (Take the Last You Fool) Strawberry Prolog :
% Click Clack
away is made by QURROTA AINI
% from GUNADARMA
UNIVERSITY
?-
G_Comp_First=0,
G_Take_Last=0,
G_Cap is bitmap_image("Apple1.bmp",_),
G_Background is bitmap_image("wall1.bmp",_),
G_Black is brush(rgb(0,0,0)),
pen(0,0),
set(pos([1,2,3,4,3,2,1])),
window_n( G_Main, _, win_func, "Click Clack Away (take the
last you fool)", 200,200,800,400,_,_,rgb(0,0,0)).
win_func(close) :- not( yes_no("EXIT","Are you
sure?", ?)).
win_func(init) :-
menu( pop_up, _, _, menu_start(_),
"&Start"),
menu( normal, _, _, menu_about(_),
"&About"),
menu( normal, _, _, menu_rule(_),
"&tutorial"),
menu( right, _, _, menu_help(_),
"&help").
menu_start(init) :-
menu( normal, _, _, menu_new(_), "&New
Game"),
menu( separator, _, _, fail(_), _),
menu( normal, _, _, menu_exit(_), "&Exit").
win_func(paint):-
draw_bitmap(0,0,G_Background,_,_),
pos(Pos),
el(Pos,El,N),
for(I,1,El),
%antar gambar
X is 70+100*N,
Y is 280- 60*I,
draw_bitmap(X-5,Y-16,G_Cap,_,_),
fail.
win_func(mouse_click(X,Y)):-
X1 is (X- 50)//100,
Y1 is (270-Y)//60,
X1=<6,X>=40,
pos(Pos),
el(Pos,El,X1),
El>Y1,
replace(Pos2, Pos, Y1, X1),
brush(G_Black),
rect(100*X1+40,0,100*X1+140,265- 58*Y1),
(Pos2=[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]->
end(1)),
set(pos(Pos3))),
update_window(_).
win_func(mouse_click(X,Y)):-
beep.
play(Pos3, Pos2):-
G_Take_Last=0,
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).
end(Flag):-
Flag=G_Take_Last->
message("Lost","Sorry, try
harder!",i)
else
message("Win","Congrats!
Good Job",!).
menu_new(press) :-
(G_Comp_First=0->
set(pos([1,2,3,4,3,2,1]))
else
Pos=[1,2,3,4,3,2,1],
N is 2*random(3),
el(Pos,A, N),
A2 is A - 1,
replace(Pos2, Pos, A2, N),
set(pos(Pos2))),
update_window(_).
menu_help(press):-
shell_execute("http://www.dobrev.com/help/").
menu_about(press) :-
message("About", "Click Clack
Away (click away the apple) \nQurrota Aini - Gunadarma University 2011", i).
menu_rule(press) :-
message("Rules","
User take turn
first. You have to click one or more just in one coloumn. Remember! Dont take
the last", i).
menu_exit(press) :-
close_window(_).
OUTPUT PROGRAM
(Matches Soccer Ball’s
(Don’t take the last)
(About this game)
(Rules this game)
(Quit this game)
Daftar Pustaka
Compile : proses menterjemahkan seluruh program kedalam bahasa mesin
sekaligus
Strawberry prolog
: dialek dari Prolog bahasa pemrograman . Its sintaks sangat dekat
dengan ISO-Prolog tetapi memiliki banyak ekstensi yang bukan bagian dari
standar. Ide utama dari Strawberry Prolog adalah mudah digunakan sehingga
beberapa universitas memilih menggunakannya dalam program mereka
I got the error while executing : Warning 7: The predicate win_func(...) has an interrupted definition. (clause 4)
BalasHapusWarning 5: The global variable G_Main is used only once.
0 errors, 2 warnings.
Runtime Error at step 13, clause in ADD:476, atom 1:2
The argument 1 of "pos" has to be list.
Runtime Error at step 15, clause 0, atom 8:8
The argument 9 of "window_n"
is "var" but has to be "int".
No.
Hope receipt the help from bros. :(((